인지용

자바스크립트 연산자 (2) 삼항 조건 연산자, 논리 부정 연산자, 지수 연산자 본문

자바스크립트

자바스크립트 연산자 (2) 삼항 조건 연산자, 논리 부정 연산자, 지수 연산자

인지용 2021. 9. 23. 00:33

 

삼항 조건 연산자

삼항 조건 연산자는 조건식의 결과에 따라 반환할 값이 결정된다.

 

예시) var result = score >= 60 ? ‘pass’ : ‘fail’;

 

score >= 60 연산의 결과가

참이면 pass를

거짓이라면 fail을

result 변수에 담는다

 

평가 결과가 불리언 값이 아니면

암묵적 타입 변환된다.

 

이때 조건식이 

참이면 콜론(:)앞의 두 번째 연산자가 평가되어 반환되고 ( pass )

거짓이면 콜론(:) 뒤의 세번째 피연산자가 평가되어 반환된다 ( fail )

 

삼항 조건 연산자 표현식과 if … else 문은 차이가 있다.

 

바로 삼항 조건 현산자 표현식은 값처럼 사용 가능하지만

if … else 문은 값처럼 사용할 수 없다.

 

삼항 조건 연산자 표현식은

값으로 평가할 있는 표현식인 문이다.

 

 

논리 부정(!) 연산자

논리 부정(!) 연산자는 언제나 불리언 값을 반환한다.

피연산자가 불리언값이 아니면 암묵적 타입 변환된다.

 

 

지수 연산자

ES7에서 도입된 지수 연산자는 좌항을 밑으로 우항을 지수로 거듭제곱한다.

도입 전에는 Math.pow 메서드를 사용했다.

 

음수를 거듭제곱의 밑으로 사용하려면 괄호로 묶어야 한다.

(-5) ** 2; // -> 25

 

지수 연산자는 이항 연산자중에서 우선순위가 가장 높다.

 

 

 

번외로

typeof 연산자로 null 값을 연산해보면 “null”이 아닌 “object”를

반환하는데 이건 js의 첫 번째 버전의 버그다. 

기존 코드에 영향을 줄수있어서 아직 수정되지 못하고 있다.

 

선언하지 않은 식별자를 typeof로 연산해보면 indefined를 반환함

 

 

 

출처 : 모던 자바스크립트 Deep dive