자바스크립트 복습하기
1. 증감 연산자 - 전치, 후치
연산자 기호 ++ 나 -- 가 앞에 있으면 전치, 뒤에 있으면 후치라고 합니다.
a++ 나 ++a 둘 다 "a 값에 1씩 더한다" 는 기본 개념은 똑같지만,
증가 및 감소 시점에 따라 연산을 수행하는 방식이 다릅니다.
"전치" 의 경우 변수를 참조하기 전에 제일 먼저 연산을 수행합니다.
즉, a 값이 1인 상태에서 a++ 을 실행시키면, a값에 1증가가 된 결과값인 2가 출력됩니다.
"후치" 의 경우 변수를 참조한 이후에 연산을 수행합니다.
값을 사용 후 증감시킵니다.
예시문
let a = 0;
let b = 0;
document.write(a++);
document.write(++b);
결과:
0 1
위 예시문 처럼 전치는 값을 증감 한 후 반영되었고, 후치는 증감되기 이전의 값이 반영되었습니다.
2. 비트 연산자
비트 연산자는 정수타입의 데이터를 2진수로 계산하는 연산자입니다.
10진수인 숫자 20을 2진수로 표현하는 과정
비트 연산자의 종류
연산자 | 설명 |
AND (&) | 두 비트가 모두 1일 때만 1을 반환합니다. |
OR (|) | 두 비트 중 하나라도 1이면 1을 반환합니다. |
XOR (^) | 두 비트값이 서로 다를때 1을 반환합니다. |
NOT (~) | 비트를 반전시킵니다. 0은 1로, 1은 0으로 변환됩니다. |
<< | 비트를 왼쪽으로 이동시킵니다. 예를 들어, 0001 << 2는 0100을 반환합니다. |
>> | 비트를 오른쪽으로 이동시킵니다. 예를 들어, 0100 >> 2는 0001을 반환합니다.만 1을 반환합니다. |
예시문
let num1 = 16, num2 = 80;
let result;
result = num1 > num2 ? num1 & num2 : num1 ^ num2;
정답 : 64
예시문 풀이
1. num1 과 num2의 값이 16과 80을 2진수로 바꿔준다.
2. 16의 2진수 : 0010000
80의 2진수: 1010000
3. num1 값이 num2보다 크다가 true일 경우, num1 & num2
false일 경우, num1 ^ num2을 실행
4. false이므로 num1 ^ num2을 실행해준다
5. ^는 두 비트값이 서로 다를때 1을 반환해주므로 답은 1000000이 됩니다.
6. 1000000의 값을 10진수로 바꿔주면 답은 64가 됩니다.
3. 지역변수, 전역변수
전역변수 : 함수 바깥에서 선언된 변수를 얘기하며 프로그램 전체에서 접근이 가능한 변수입니다.
지역변수 : 함수 내부에서 선언된 변수로 함수의 실행, 종료와 함께 생성되고 소멸되는 변수이고, 함수 바깥쪽에서 접근하는 것이 불가능합니다.
let x = 100; // 전역 변수
let y = 200; // 전역 변수
function func(){
x = 300; // 전역 변수 - let이 앞에 없으므로 전역변수 x의 값을 변경
let y = 400; // 지역 변수
z = "javascript";
console.log("함수안"+x); //300
console.log("함수안"+y); //400
console.log("함수안"+z);
}
func();
console.log("함수밖"+x); //300
console.log("함수밖"+y); //200