a = b = c = 2 + 2;
"" + 1 + 0
"" - 1 + 0
true + false
6 / "3"
"2" * "3"
4 + 5 + "px"
"$" + 4 + 5
"4" - 2
"4px" - 2
7 / 0
" -9 " + 5
" -9 " - 5
null + 1
undefined + 1
" \t \n" - 2
"" + 1 + 0 = "10"
"" - 1 + 0 = -1
true + false = 1
6 / "3" = 2
"2" * "3" = 6
4 + 5 + "px" = "9px"
"$" + 4 + 5 ="$45"
"4" - 2 = 2
"4px" - 2 = NaN
7 / 0 = Infinity // 틀렸음
" -9 " + 5 = " -9 5" // 틀렸음
" -9 " - 5 = -14
null + 1 = 1
undefined + 1 = NaN
" \t \n" - 2 = -2
null
이나 undefined
를 ==
로 비교할 때 서로를 비교하는 경우에만 true
를 return 하고 나머지는 false
를 반환한다let a = 0;
alert( Boolean(a) ); // ??
let b = "0";
alert( Boolean(b) ); // ??
alert(a == b); //결과는? 이유는?
let a = 0;
alert( Boolean(a) ); // false
let b = "0";
alert( Boolean(b) ); // true
alert(a == b); // true! 서로 다른 형을 비교할 때 자바스크립트는 숫자형으로 바꿔서 비교한다.
alert( null > 0 ); // ?
alert( null == 0 ); // ?
alert( null >= 0 ); // ?
alert( null > 0 ); // (1) false
alert( null == 0 ); // (2) false
alert( null >= 0 ); // (3) true
alert( undefined > 0 ); // ??
alert( undefined < 0 ); // ??
alert( undefined == 0 ); // ??
alert( undefined > 0 ); // false (1)
alert( undefined < 0 ); // false (2)
alert( undefined == 0 ); // false (3)
5 > 4
"apple" > "pineapple"
"2" > "12"
undefined == null
undefined === null
null == "\n0\n"
null === +"\n0\n"
5 > 4 → true
"apple" > "pineapple" → false
"2" > "12" → true
undefined == null → true
undefined === null → false
null == "\n0\n" → false
null === +"\n0\n" → false
??와 ||의 차이
해답
0은 falsy이기 때문에 0은 || 로 값이 선택되어 나오지 못하기 때문에 ??를 사용할 때가 있음
outer: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
let input = prompt(`(${i},${j})의 값`, '');
// 사용자가 아무것도 입력하지 않거나 Cancel 버튼을 누르면 두 반복문 모두를 빠져나옵니다.
if (!input) break outer; // (*)
// 입력받은 값을 가지고 무언가를 함
}
}
alert('완료!');
let age = prompt("나이를 알려주세요.", 18);
let welcome;
if (age < 18) {
welcome = function() {
alert("안녕!");
};
} else {
welcome = function() {
alert("안녕하세요!");
};
}
welcome(); // 제대로 동작합니다.