7,8장. 연산자와 제어문

==

형변환을 암묵적으로 해준 후 값을 비교한다.

숫자와 문자열을 비교하는 경우 모두 문자열로 변환해서 비교한다.

원시타입과 객체를 비교할 때에는 객체가 원시타입으로 변환된다.

3 == '3'; // true

==은 null과 undefined를 동일하게 다룬다.

즉, null or undefined를 감지할때 ==를 쓰면 좋다!

===

형변환을 하지 않고 값을 있는 그대로 비교해준다.

3 === '3'; // false

Object.is()

아래와 같이 예측 가능한 정확한 비교 결과를 반환한다.

  • NaN과 NaN 비교 결과가 true다.
  • +0과 -0 비교 결과가 false다

위 두가지 경우를 제외하고는 ===와 동일하게 동작한다.

-0 === +0; // true
Object.is(-0, +0); // false

/****************************/

NaN === NaN; // false
Object.is(NaN, NaN); // true

&&

논리곱 연산자이다.

특징은 가장 왼쪽의 피연산자부터 시작하여 오른쪽으로 나아가며 평가한다.

true && false && true && false; // 두번째 false까지 검사함
true && true && true && false; // 마지막 false까지 다 검사함

typeof

데이터 타입을 문자열로 반환한다.

주의점은

undefined는 undefined로 반환되지만,

null은 object로 반환된다.


8장 제어문은 쓸게 없네요... 면접에 나올것 같지도 않고... 스킵!

Last Updated: