본문 바로가기
js 이론

자바스크립트 연산자

by 김홍중 2021. 9. 11.

Math.pow()

pow는 Math의 static method이므로 Math객체를 생성하여 생성된 객체의 method를 사용하지 않고 Math.pow()로 사용합니다. (MDN참고)

 

거듭제곱(**)

밑을 음수로 하는 경우 다음과 같은 오류가 나서 괄호를 해야합니다.

이항 연산자보다 우선순위가 높습니다.

** 와 Math.path()의 차이점은 **은 BigInt도 피연산자가 될 수 있는 점입니다. (MDN참고)

BigInt는 Number 값이 안정적으로 나타낼 수 있는 최대값인 2^53 - 1보다 큰 정수를 표현할 수 있는 내장 객체입니다. (MDN참고)

 

 

연쇄할당

다음과 같이 연쇄적으로 할당할 수 있습니다.

NaN은 자신과 일치하지 않는 값으로 평가합니다. 그리고 자바스ㅡ립트에는 +0과 -0이 있는데 이를 같다고 평가합니다.

ES6에서 도입된  Object.is메서도로 정확한 비교를 할 수 있습니다.

암묵적 타입 변환

사용자가 잘못 넣은 타입을 올바른 타입으로 변환하려고 시도하는데 이를 암묵적 타입 변환이라 합니다.

 

- 배열 객체

const a = [].toString();
const b = [].join();

const c = [1, 2, 3].toString();
const d = [1, 2, 3].join();

const e = "test" + [1, 2, 3];
const f = 5 + [1, 2, 3];
const g = 5 * [1, 2, 3];

출력은 다음과 같습니다.

마지막 곱하기를 제외하고 모두 string으로 처리됩니다.

원소가 하나만 있는 배열과 연산을 하게 되면 

const h = 6 * [];
const i = 6 / [2];

모두 number로 취급하여 연산함을 알 수 있습니다.

 

참고자료

- MDN

- 암묵적 타입 변환

'js 이론' 카테고리의 다른 글

[js] 전역 변수의 사용을 억제하는 방법 - 즉시 실행 함수, ES6모듈  (0) 2021.10.09
객체 리터럴  (0) 2021.09.17
자바스크립트 변수  (0) 2021.09.04
call, apply, bind  (0) 2021.08.25

댓글