๋ฌธ๋ฒ ์ ๋ฆฌ๋ #21์ ์ฌ๊ธฐ์๋ ์ ๋ฆฌํ๊ธฐ๋ ์กฐ๊ธ ์ ๋งคํ์ง๋ง ์๋ก ์๊ฒ๋ ์ฌ์ค์ ์ฐ๋ ค๊ณ ํ๋ค.
0b10 //2์ง์ 2 0o10 //8์ง์ 8 - ์ด๊ฒ ์์ธ์๋ค. ๊ทธ๋ฅ ์์ 0์ฐ๋ ์ธ์ด๋ ์๋๋ฐ 0x10 //16์ง์ 16
&& || ! ๋ฌธ์
1. false || true // t 2. true && false // f 3. !true //f 4. !((true && false) || (true && false)) //t 5. let x = 10 !((x % 5 == 0 && x % 2 == 0) || (x / 2 == 5 && false)) //f 6. let y = 10 (false && y % 2 == 0) && (y / 2 == 5 && false) //f 7. let z = 3 (true && z % 3 == 0) || (z / 2 !=!= 5 && false) // !=!=๋ ์๋ชป๋ ๋ฌธ๋ฒ์ ๋๋ค.ใ ใ // error ๋ฌธ๋ฒ ์ค๋ฅ๋ ์ก์.
// ๋๋ชจ๋ฅด๊ฐ ๋ฒ์น !(x || y) === (!x && !y) !(x && y) === (!x || !y)
์ค๋๋ถํฐ.. ์ง๋์ ๋ง์ถฐ์ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ด๋๊ฐ๊ธฐ๋ก ํ๋ค!
2~9์ฅ์ ์ฝ์๋๋ฐ ์๋ถ๋ถ์ด๊ธฐ๋ ํ๊ณ , const let ์ ์ ์ธํ๋ฉด if switch for while do~while ์ด ํฌ๊ฒ ๋ค๋ฅธ ์ธ์ด์ ๋ค๋ฅด์ง ์์์ ์ค๋ ์์ ์์๋ ๋ค๋ฃฌ JavaScript์ ๋ฏธ์ณ๋ฒ๋ฆฐ type casting ์ ์๊ฐ์ ์์ ์ ์์๋ค.
#21 ์ ์ถ๊ฐ๋ก ์ ๋ฆฌํ๋ฉด ์ข๊ฒ ๋ค ์ถ์ด์ ์ด ๋ถ์ธ ๋ด์ฉ ์ธ์ ์์ ์์ ๋ค๋ฃจ์ง ์์ ์๋ก ์๊ฒ ๋ ๋ถ๋ถ๋ค์ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค.
- Symbol type : ๋ฑ ํ๋๋ง ์กด์ฌํ๋ ์ ์ผ๋ฌด์ดํ ๊ฐ.
var key = Symbol('key'); Symbol('key') === Symbol('key') // false
์ฐพ์๋ณด๋๊น ID ๊ฐ์ด ์ ์ผ๋ฌด์ดํ ๊ฐ์ ์ฌ์ฉํ๋ ๊ฒ ๊ฐ์๋ฐ ์ ํํ๋ ์ ๊ฐ์ด ์์จ๋ค.
- for ๋ฌธ์์ label ์ ์ฌ์ฉํ๋ฉด ๋ฐ๊นฅ for ๋ฌธ์ ํ์ถํ ์ ์๋ค.
outer: for(let i = 0; i < 3; i++) { for(let j = 0; j < 3; j++) { if(i+j == 0) break outer; } }
// String : val + '' ๋ง์ด ์. String(val); val.toString(); val + ''; // Number : parseInt๊ฐ ์์ Number(val); parseInt(val); +val; val * 1; -'123'; //-123 // Boolean Boolean(val); !!falsy; !!truthy;
!!NaN; !!undefined //false false == !!undefined;
// if (truthy) ๋ฌธ์ && ์ผ๋ก ๋์ฒด ๊ฐ๋ฅ. if (done) msg = "๋คํ๋ค."; msg = doen && "๋คํ๋ค."; // if (falsy) ๋ฌธ์ || ์ผ๋ก ๋์ฒด ๊ฐ๋ฅ. if (!done) msg = "๋ชปํ๋ค."; msg = done || "๋ชปํ๋ค."; //if -else ๋ ์ผํญ์กฐ๊ฑด์๊ฐ ๋์ฒด๊ฐ๋ฅ ์ผํญ์กฐ๊ฑด์๋ ์๋๋ก ๋์ฒด๊ฐ๋ฅ. true && '๋คํ๋ค.' || '๋ชปํ๋ค.';
- optional chaining (?.), null ๋ณํฉ ์ฐ์ฐ์ (??)
// ?. ์์ ๊ฐ์ด null, undefined ๋ฉด ์์ ๊ฐ์ ๋ฐํ. ์๋๋ฉด ๋ค์ ๊ฐ์ ๋ฐํ. // ์ด๊ฑธ && ๋ก ์ผ์๋ค. -> ๋ฌธ์ : ์์ ๊ฐ์ด null, undefined๊ฐ ์๋ falsy ๊ฐ ๋์ค๋ฉด... ์ํ๋๋๋ก ๋ค์ ๊ฐ์ ๋ชป์ป์. var str = ''; var value = str && str.length; var value = str?.length; // ?? ์์ด null, undefined ์ด๋ฉด ๋ค์ ๊ฒ์ด ๋์ค๊ณ , ์๋๋ฉด tmp ๊ฐ์ด ๋์ด. // ์ด๊ฑด || ์ผ์๋๋ฐ, ์ญ์ n u ๊ฐ ์๋ falsy ๊ฐ ๋์ค๋ฉด ์ค๊ณ๋๋ก ๋์ X var tmp = null; var value = tmp || "์ค์ฐ null ์ ๋๋ค."; var value = tmp ?? "์ค์ฐ null ์ ๋๋ค.";
- ๋ณ์์ ํธ์ด์คํ
//์๋ ๋ ์ค์ ๋ค๋ฅธ ๋ฌธ์ฅ์ด์ง๋ง, js ์์ง์๊ฒ๋ ๊ฐ์ ๋ฌธ์ฅ. ์ผ๋จ ์ ์ธ๋ถ๋ฅผ ์ฐพ์์ ์ ๋ถ ์ ์ธ์ ํด์ undefined ๊ฐ์ผ๋ก ์ด๊ธฐํํด๋๊ณ , ํ ๋น ๋ถ๋ถ์ ๊ทธ ๋ค์์ ์คํํ๋ค. // let, const ์ ๊ฒฝ์ฐ๋ undefined๋ก ์ ์ธ์ ํ์ง ์๊ธฐ ๋๋ฌธ์, ์ด๊ธฐํ ํ์ง ์๊ณ ์ฌ์ฉํ๋ฉด ์ค๋ฅ๋จ! var a; a = 100; var a = 100;