loose equality(==) vs strict equality(===)
let first = 1 + 1;
let second = '2'; // 문자열 2가 들어와도 두개 같다라고 뜬다
console.log(first == second) // true
느슨한 동치 연산자 '=='의 예시
console.log(0 == false)// true;
console.log('' == false)// true;
console.log([] == false)// true;
console.log(![] == false)// true;
console.log([] == ![])// true;
console.log([] == '')// true;
console.log([] == 0)// true;
console.log([''] == '')// true;
console.log([''] == 0)// true;
console.log([0] == 0)// true;
사실 느슨한 동치 연산(loose equality)는 프로그램의 작동을 예측하기 다소 어렵게 만듭니다.
'=='의 특성을 정확하게 외워서 모든 상황에 대응하겠다는 자세는 접어두시기 바랍니다.
(2) strict equality(===)
let first = 1 + 1;
let second = 2; // 1+1 혹은 2가 들어와야 두개가 같다라고 뜬다.
console.log(first == second) // true
console.log(1 + '1')//'11'
Number 1 하고 문자열 '1' 문자열 '11'
console.log(123 - '1')// 122;
Number 123 하고 - '1' Number 122
console.log(1 + true)// 2;
Number 1 + true값은 1 Number 2
console.log('1' + true)//'1true;
문자열 '1' 하고 true를 합하면 문자열 '1true'
참고 : 코드스테이츠