본문 바로가기
프로그래밍/Javascript

JavaScript기초 : 자료형 4. type of 연산자/ 연산자 우선순위

by 조크리 2020. 9. 4.
반응형

4. type of 연산자

 

값의 자료형을 평가해서 number인지 string인지 boolean인지 문자열로 반환한다. 

 

숫자인지, 문자열인지, 함수인지 등등을 문자열로 반환하여 콘솔에 보여준다. 

 

 

 

 

중요 포인트! typeof 연산자는 사칙연산자보다 우선순위가 높다!

 

line38의 경우 typeof 8을 먼저 해서 문자열 number가 될 것이고 문자열과 숫자3을 계산해야하니 '숫자가 아니다.' 라는 NaN이 나오게 된 것이다. 

 

이럴 경우에는 line41처럼 괄호를 씌워주면 된다~!

 

 

 

4-2. 연산자 우선순위(precedence)

 

숫자연산의 경우 사칙연산 우선순위를 생각하면 편하다.

곱셈, 나눗셈을 먼저 그 다음은 덧셈, 뺄셈이다. 

우선순위가 같으면 왼쪽부터 시작해서 오른쪽으로 연산이 수행된다. 

 

연산자 우선순위가 정리된 웹 사이트

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/%EC%97%B0%EC%82%B0%EC%9E%90_%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84

 

연산자 우선순위

연산자 우선순위는 연산자를 실행하는 순서를 결정합니다. 우선순위가 높은 연산자가 먼저 실행됩니다.

developer.mozilla.org

 

 

예제를 살펴보자!

//우선순위 예시1
typeof(6 * 2 === 11||13 - 7 < 7 && !true);
우선순위
1) 괄호 2) not 3) 사칙연산 4) 비교연산 5) 논리연산 : and가 or보다 우선순위가 높음 

 

 여기서 가장 높은 우선순위는 괄호이다. 괄호 내부를 먼저 연산해야 한다.

괄호 안을 살펴보니 또 우선순위를 따져봐야한다. 그 다음 우선순위가 not연산자다.

 

그렇다면 

//우선순위 예시1
typeof(6 * 2 === 11||13 - 7 < 7 && false);

 이렇게 false로 변한다. 

 

그 다음 사칙연산을 해야한다. 

//우선순위 예시1
typeof(12 === 11||6 < 7 && false);

 이렇게 숫자로 변한다. 

 

그 다음 비교연산자의 우선순위가 높으므로 비교연산을 해준다.. 

//우선순위 예시1
typeof(flase||true && false);

 이렇게 비교 연산이 완료되었다. 

 

이제 마지막 논리연산이다. 논리연산은 and 가 우선순위가 높다. 

//우선순위 예시1
typeof(flase||false);

 결국 false or false가 되었다. 

or는 하나라도 참이면 참이되는데 둘 다 false이기 때문에 결과값은 false이다. 

 

이제 괄호 연산이 끝났다. typeof 가 마지막 우선순위이다.

//예시의 결과
typeof false;
//즉 boolean

false의 type은 boolean이다. 

 

결론적으로 boolean 이다. 

 

우선순위를 잘 생각하고 연산하는 것이 매우 중요하다. 

처음부터 바로 외우기는 무리이니까 프로그래밍을 하면서 차차 익혀나가도록 하자!

 

다음 글에서는 형 변환에 대해 알아보자!

 

 

 

반응형