Skip to content

Latest commit

ย 

History

History
161 lines (140 loc) ยท 4.44 KB

ch09-ํ•ด์„ค.md

File metadata and controls

161 lines (140 loc) ยท 4.44 KB

Chapter09

๐Ÿ“Œ๋ฌธ์ œ1

๋‹ค์Œ ์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.

if([]) console.log(1);
if([1, 2, 3]) console.log(2);
if(undefined) console.log(3);
if(null) console.log(4);
if(NaN) console.log(5);

์ •๋‹ต ๋ฐ ํ•ด์„ค

1 
2 
// ๋ฐฐ์—ด์€ ๋น„์—ˆ์–ด๋„ true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
undefined, null, NaN์€ falsy ๊ฐ’์ด๋‹ค.

๐Ÿ“Œ๋ฌธ์ œ2

๋‹ค์Œ ์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.

const func = () => {};
console.log(func + '');
console.log(func() + '');
console.log(!!func);
console.log( +func);
console.log(func + 1);
+function() { console.log("Foo!")}();

์ •๋‹ต ๋ฐ ํ•ด์„ค

() => {} (๋ฌธ์ž์—ด)// string ์ž๋™ ํ˜•๋ณ€ํ™˜
undefined(๋ฌธ์ž์—ด) // undefined + '' 
true // !์—ฐ์‚ฐ์ž ์‹œ ์ž๋™ ํ˜•๋ณ€ํ™˜
nan // Number type์œผ๋กœ ์ž๋™ ํ˜•๋ณ€ํ™˜
() => {}1(๋ฌธ์ž์—ด) (์ฑ…์— ์—†์Œ)
Foo // ํ•จ์ˆ˜ ์ •์˜ ์•ž์— ๋‹จํ•ญ์—ฐ์‚ฐ์ž๊ฐ€ ์˜ค๋ฉด ์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ๋™์ž‘(์ฑ…์— ์—†์Œ) 

๐Ÿ“Œ๋ฌธ์ œ3

๋‹จ์ถ•ํ‰๊ฐ€๋ž€ ๋ฌด์—‡์ธ์ง€ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ •๋‹ต ๋ฐ ํ•ด์„ค

const result = "Cat" && "Dog" // "Dog" 
// ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํ”ผ์—ฐ์‚ฐ์ž์˜ ํƒ€์ž…์„ ๋ณ€ํ™˜ํ•˜์ง€์•Š๊ณ  ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.



// ์ฐธ๊ณ :๋‹จ๋ฝํ‰๊ฐ€.
// OR์—ฐ์‚ฐ์ž๋Š” truthy๋ฅผ ๋งŒ๋‚˜๋ฉด ๋‚˜๋จธ์ง€ ๊ฐ’๋“ค์€ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์€ ์ฑ„ ํ‰๊ฐ€๋ฅผ ๋ฉˆ์ถ˜๋‹ค.
// &&์—ฐ์‚ฐ์ž๋Š” falsy๋ฅผ ๋งŒ๋‚˜๋ฉด ๋‚˜๋จธ์ง€ ๊ฐ’๋“ค์€ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์€ ์ฑ„ ํ‰๊ฐ€๋ฅผ ๋ฉˆ์ถ˜๋‹ค.
true || alert("1");  // x
false || alert("2"); // o
true && alert("3"); // o
false && alert("4"); // x

// alertํ•จ์ˆ˜
alert(alert("1") && 3); // 1,undefined ์–ผ๋Ÿฟ์ฐฝ ์ถœ๋ ฅ (alertํ•จ์ˆ˜๋Š” undefined๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.)

๐Ÿ“Œ๋ฌธ์ œ4

์˜ต์…”๋„ ์ฒด์ด๋‹, null๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž์˜ ์‚ฌ์šฉ์‚ฌ๋ก€๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.

(1): ์˜ต์…”๋„ ์ฒด์ด๋‹, null๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž์˜ ์‚ฌ์šฉ์‚ฌ๋ก€๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.
(2): ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•œ ๋‹จ์ถ•ํ‰๊ฐ€์™€ ๋น„๊ตํ–ˆ์„๋•Œ ์˜ต์…”๋„ ์ฒด์ด๋‹, null๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž์˜ ์žฅ์ ์—๋Œ€ํ•ด์„œ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ •๋‹ต ๋ฐ ํ•ด์„ค

(1)
- ์˜ต์…”๋„ ์ฒด์ด๋‹ : ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•˜๋Š” ๋ณ€์ˆ˜๊ฐ€ null ๋˜๋Š” undefined๊ฐ€ ์•„๋‹Œ์ง€ ํ™•์ธํ•˜๊ณ  ํ”„๋กœํผํ‹ฐ๋ฅผ ์ฐธ์กฐํ•  ๋•Œ.
- null๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž : ๋ณ€์ˆ˜์— ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•  ๋•Œ.
(2)
- Falsy๊ฐ’์ด์•„๋‹Œ, ์˜ค์ง null๊ณผ undefined์ธ์ง€๋ฅผ ํ‰๊ฐ€ํ•˜๊ธฐ๋•Œ๋ฌธ์— ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ƒํ•˜๊ธฐ ์‰ฝ๋‹ค.

๐Ÿ“Œ๋ฌธ์ œ5

๋‹ค์Œ ์ฝ”๋“œ์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธกํ•˜์„ธ์š”.

let x = 10;
let str = x + "";

console.log(typeof str, str); // (1)
console.log(typeof x, x); // (2)

์ •๋‹ต ๋ฐ ํ•ด์„ค

(1) string 10
(2) number 10
109p
์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜์€ ๊ธฐ์กด ๋ณ€์ˆ˜ ๊ฐ’์„ ์žฌํ• ๋‹นํ•˜์—ฌ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ํ‘œํ˜„์‹์„ ์—๋Ÿฌ ์—†์ด ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜ํ•˜์—ฌ
์ƒˆ๋กœ์šด ํƒ€์ž…์˜ ๊ฐ’์œผ๋กœ ๋งŒ๋“ค์–ด ๋‹จ ํ•œ ๋ฒˆ ์‚ฌ์šฉํ•˜๊ณ  ๋ฒ„๋ฆฐ๋‹ค.

๐Ÿ“Œ๋ฌธ์ œ6

๋‹ค์Œ ์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธกํ•˜์„ธ์š”.

console.log(("A" && "B") || false); // (1)
console.log(false || "A" || false); // (2)
console.log("A" && true && true); // (3)

์ •๋‹ต ๋ฐ ํ•ด์„ค

(1) B
(2) A
(3) true
118p
๋…ผ๋ฆฌ๊ณฑ, ๋…ผ๋ฆฌํ•ฉ ์—ฐ์‚ฐ์ž๋Š” ๋‹จ์ถ• ํ‰๊ฐ€ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ ํ‘œํ˜„์‹์„ ํ‰๊ฐ€ํ•˜๋Š” ๋„์ค‘์— ํ‰๊ฐ€ ๊ฒฐ๊ณผ๊ฐ€ ํ™•์ •๋˜๋ฉด, ๋‚˜๋จธ์ง€ ํ‰๊ณผ ๊ณผ์ •์„ ์ƒ๋žตํ•œ๋‹ค.

๐Ÿ“Œ๋ฌธ์ œ7

๋‹ค์Œ ์ฝ”๋“œ์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.

console.log((undefined + 1)); // (1)
console.log([] && true); // (2)
console.log({} && true); // (3)
console.log(([10, 20] + 1)); // (4)

์ •๋‹ต ๋ฐ ํ•ด์„ค

(1) : NaN
+ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž์— ์˜ํ•ด์„œ NaN์ด ์ถœ๋ ฅ๋œ๋‹ค.
(2) : true
๋นˆ ๋ฐฐ์—ด์€ Truthy ๊ฐ’์œผ๋กœ ํ‰๊ฐ€๋œ๋‹ค.
(3) : true
๋นˆ ๊ฐ์ฒด์€ Truthy ๊ฐ’์œผ๋กœ ํ‰๊ฐ€๋œ๋‹ค.
(4) : 10,201
๋ฌธ์ž์—ด ์—ฐ๊ฒฐ ์—ฐ์‚ฐ์ž์— ์˜ํ•ด ๋ฌธ์ž์—ด ํƒ€์ž…์ด ์•„๋‹Œ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ฌธ์ž์—ด ํƒ€์ž…์œผ๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜ํ•œ๋‹ค.

๐Ÿ“Œ๋ฌธ์ œ8

์˜ต์…”๋„ ์ฒด์ด๋‹ ์—ฐ์‚ฐ์ž?.๋ฅผ ์ด์šฉํ•˜์—ฌ null ๋˜๋Š” undefined๋ฅผ ํŒ๋‹จํ•  ๋•Œ์™€ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž&&๋ฅผ ์ด์šฉํ•˜์—ฌ ํŒ๋‹จํ•  ๋•Œ ์ฐจ์ด์ ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ •๋‹ต ๋ฐ ํ•ด์„ค

์˜ต์…”๋„ ์ฒด์ด๋‹ ์—ฐ์‚ฐ์ž๋Š” ํ•ด๋‹น ๋ณ€์ˆ˜์˜ null, undefined ์ธ ๊ฒฝ์šฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํŒ๋‹จํ•˜๊ณ ,
๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž(&&)๋Š” Falsy ๊ฐ’์ธ ๊ฒฝ์šฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํŒ๋‹จํ•œ๋‹ค.
Falsy : false, undefined, null, 0, -0, NaN, ''

๋˜ํ•œ 0์ด๋‚˜ ''์ด ๋ž˜ํผ ๊ฐ์ฒด์— ์˜ํ•ด ๊ฐ์ฒด๋กœ ํ‰๊ฐ€๋  ์ˆ˜ ์žˆ๋‹ค.