TEST&복습

자바스크립트 복습하기

hyejeong3283 2023. 3. 12. 16:59
728x90
반응형

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