var x;
x = 10; // 10
x += 5; // 15
x -= 5; // 10
x *= 5; // 50
x /= 5; // 10
x %= 5; // 0
var str = 'My name is ';
str += 'Lee'; // My name is Lee
==
동등 연산자(equal operator)
5 == 5 // true
// 타입은 다르지만 암묵적 타입 변환을 통해 타입을 일치시키면 같은 값을 같는다.
5 == '5' //true
5 == 8 // false
변수에 값을 넣어주지 않은 상태에서 출력하면 undefined가 출력된다.
var a;
alert(a); // undefined
null 값을 넣어주면 null이 출력된다. → 값이 없는 상태를 프로그래머가 의도적으로 부여한 것이다.
var a = null;
alert(a); // null
엄격히 다르지만 동등 연산자에서는 true를 반환한다.
alert(null == undefined); //true
alert(null === undefined); //false
===
일치 연산자(strict equal operator)
alert(1=='1'); //true
alert(1==='1'); //false
alert(true == 1); //true
alert(true === 1); //false
alert(true == '1'); //true
alert(true === '1'); //false
NaN
alert(NaN === NaN); //false
isNaN(NaN) // true
!=
부동등 연산자
alert(1!=2); //true
alert(1!=1); //false
alert("one"!="two"); //true
alert("one"!="one"); //false
!==
불일치 연산자
5 !== '5' // true
>
alert(10>20); //false
alert(10>1); //true
alert(10>10); //false
>=
alert(10>=20); //false
alert(10>=1); //true
alert(10>=10); //true
조건식 ? 조건식이 true일때 반환할 값 : 조건식이 false일때 반환할 값
var x = 2;
// x가 짝수이면 '짝수'를 홀수이면 '홀수'를 반환한다.
// 2 % 2는 0이고 0은 false로 암묵적 타입 변환된다.
var result = x % 2 ? '홀수' : '짝수';
console.log(result); // 짝수
var x = 2, result;
// x가 짝수이면 '짝수'를 홀수이면 '홀수'를 반환한다.
// 2 % 2는 0이고 0은 false로 암묵적 타입 변환된다.
if (x % 2) result = '홀수';
else result = '짝수';
console.log(result); // 짝수
동등 연산자와 일치 연산자에 대한 내용을 보면서 약간 충격을 받았다😮 버그를 예방하기 위해서, 언어가 지원하는 편의성을 프로그래머가 외면해야 한다는 점이 신선했다. 관용적인 요소는 당장 시스템을 쉽게 구현할 수 있게 하지만, 코드에서 오류를 발견하지 못하고 시스템이 동작하는 단계에서 심각한 버그를 직면할 수 있다는 사실을 꼭 기억해야겠다🙃