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 |
댓글