B6 : ๊ตฌ๋ฌธ๊ณผ ์—ฐ์‚ฐ์ž

2025. 8. 11. 23:15ใ†Front-end/JavaScript

๋ฐ˜์‘ํ˜•

๋ชฉ์ฐจ

1. ๊ตฌ๋ฌธ

    1-1. ๊ตฌ๋ฌธ (Syntax)

    1-2. ํ‘œํ˜„์‹ (Expression)

    1-3. ๋ฌธ (Statement)

    1-4. ํ‘œํ˜„์‹๊ณผ ๋ฌธ

2. ์—ฐ์‚ฐ์ž (Operator)

    2-1. ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž

    2-2. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

    2-3. ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž

    2-4. ๋น„ํŠธ ์—ฐ์‚ฐ์ž

    2-5. ์กฐ๊ฑด ์—ฐ์‚ฐ์ž

    2-6. ํ• ๋‹น ์—ฐ์‚ฐ์ž

    2-7. ์‰ผํ‘œ ์—ฐ์‚ฐ์ž

    2-8. typeof ์—ฐ์‚ฐ์ž

    2-9. nullish ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž


1. ๊ตฌ๋ฌธ

1. ๊ตฌ๋ฌธ (Syntax)

์–ธ์–ด๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๊ทœ์น™์„ ์ •์˜ํ•˜๋ฉฐ, ๋ฌธ๋ฒ•์— ๋”ฐ๋ผ ์ž‘์„ฑํ•œ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ตฌ๋ฌธ์˜ ์ค‘์š”ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ํ‘œํ˜„์‹, ๋ฌธ, ์—ฐ์‚ฐ์ž๊ฐ€ ์žˆ๋‹ค.

 

2. ํ‘œํ˜„์‹ (Expression)

๊ฐ’์œผ๋กœ ํ‰๊ฐ€๋˜๋Š” ๊ตฌ๋ฌธ์œผ๋กœ ๋ฌธ์ž, ์ˆซ์ž, ํ• ๋‹น ํ‘œํ˜„์‹, ๋ณตํ•ฉ ํ‘œํ˜„์‹์ด ํฌํ•จ๋œ๋‹ค.

'javascript'	// ๋ฌธ์ž
3	// ์ˆซ์ž
a = 1	// ํ• ๋‹น ํ‘œํ˜„์‹
x + y;	// ๋ณตํ•ฉ ํ‘œํ˜„์‹
  • ํ• ๋‹น ํ‘œํ˜„์‹ : ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ , ๊ฐ’์„ ๋Œ€์ž…ํ•˜๋Š” ํ‘œํ˜„์‹
  • ๋ณตํ•ฉ ํ‘œํ˜„์‹ : ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋‹จ์ผ ํ‘œํ˜„์‹์„ ์—ฐ์‚ฐ์ž, ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋“ฑ์œผ๋กœ ๊ฒฐํ•ฉํ•œ ๊ฒƒ

3. ๋ฌธ (Statement)

์ผ์ข…์˜ ์ง€์‹œ๋ฅผ ๋‚ด๋ฆฌ๋Š” ๊ฒƒ์œผ๋กœ, ํ‘œํ˜„์‹์ด ๊ฐ’์„ ๊ฒฐ๊ณผ๋กœ ๊ฐ€์ ธ์˜จ๋‹ค๋ฉด, ๋ฌธ์€ ํ‘œํ˜„์‹์ด๋‚˜ ๋‹ค๋ฅธ ๋ฌธ์„ ์กฐํ•ฉํ•ด ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ง€์‹œ๋ฅผ ๋‚ด๋ฆฐ๋‹ค.

let a;	// ํ‘œํ˜„์‹
if(true){ a='1' }	// ๋ฌธ

 

๋ฌธ์€ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.

var a = 1;				// ์„ ์–ธ๋ฌธ
if(a) { alert('์กฐ๊ฑด๋ฌธ'); }		// ์กฐ๊ฑด๋ฌธ
while(a) { alert('๋ฐ˜๋ณต๋ฌธ'); }		// ๋ฐ˜๋ณต๋ฌธ

function doSomething() { return 'foo'; }
console.log(doSomething());		 // ์ ํ”„๋ฌธ

 

4. ํ‘œํ˜„์‹๊ณผ ๋ฌธ

ํ‘œํ˜„์‹๊ณผ ๋ฌธ์„ ์ •๋ฆฌํ•˜๋‹ค๋ณด๋‹ˆ ํ—ท๊ฐˆ๋ ค์„œ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ถ„ํ•˜๋Š” ์ง€ ์•Œ์•„๋ดค๋‹ค.

์•Œ์•„๋ณด๋‹ค๋ณด๋‹ˆ ์–‘์ด ์ข€ ๋งŽ์•„์ ธ์„œ ๊ธ€์„ ๋”ฐ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด ํ‘œํ˜„์‹๊ณผ ๋ฌธ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฒ• >>

 


2. ์—ฐ์‚ฐ์ž (Operator)

1. ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž

์ˆซ์ž ์—ฐ์‚ฐ์— ํ•„์š”ํ•œ ์—ฐ์‚ฐ์ž๋“ค์ด๋‹ค.

์—ฐ์‚ฐ์ž ์ˆ˜ํ–‰ ์—ฐ์‚ฐ ํ”ผ์—ฐ์‚ฐ์ž ๊ฐœ์ˆ˜ ๊ฒฐํ•ฉ ๋ฐฉํ–ฅ ์˜ˆ์ œ ๊ฒฐ๊ณผ
+ ๋ง์…ˆ 2 ์ขŒ โ‡ข ์šฐ 1 + 2 3
- ๋บ„์…ˆ 2 ์ขŒ โ‡ข ์šฐ 2 - 1 1
* ๊ณฑ์…ˆ 2 ์ขŒ โ‡ข ์šฐ 1 * 2 2
/ ๋‚˜๋ˆ—์…ˆ 2 ์ขŒ โ‡ข ์šฐ 4 / 2 2
% ๋‚˜๋จธ์ง€ 2 ์ขŒ โ‡ข ์šฐ 5 % 2 3
++ ์ „์น˜, ํ›„์น˜ ์ฆ๊ฐ€(๋‹จํ•ญ ์—ฐ์‚ฐ) 1 ์šฐ โ‡ข ์ขŒ,
์ขŒ โ‡ข ์šฐ
const a = 1;
++a, a++
2, 1
-- ์ „์น˜, ํ›„์น˜ ๊ฐ์†Œ(๋‹จํ•ญ ์—ฐ์‚ฐ) 1 ์šฐ โ‡ข ์ขŒ,
์ขŒ โ‡ข ์šฐ
const a = 1;
--a, a--
0, 1
+ ๋‹จํ•ญ ํ”ผ์—ฐ์‚ฐ์ž ๊ฐ’์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ 1 ์šฐ โ‡ข ์ขŒ const a = '1'; +a 1
- ๋‹จํ•ญ ํ”ผ์—ฐ์‚ฐ์ž ๊ฐ’์˜ ๋ถ€ํ˜ธ๋ฅผ ๋ณ€๊ฒฝ 1 ์šฐ โ‡ข ์ขŒ const a = 1; -a -1

์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•œ ๋Œ€๋ถ€๋ถ„์˜ ํ‘œํ˜„์‹์€ ๋ถ€์ˆ˜ ํšจ๊ณผ๊ฐ€ ์—†์œผ๋‚˜, ์ „์น˜/ํ›„์น˜/์ฆ๊ฐ ์—ฐ์‚ฐ์ž๋Š” ๋ถ€์ˆ˜ ํšจ๊ณผ๋ฅผ ๊ฐ€์ง„๋‹ค.

  • console.log(a, b); → ํ›„์น˜ ์—ฐ์‚ฐ
    a๋Š” ์ฆ๊ฐ€ ํ›„ ๊ฐ’์ธ 2๋ฅผ ์ถœ๋ ฅ
     b๋Š” ์ฆ๊ฐ€ ์ „ ๊ฐ’์ธ 1์„ ์ถœ๋ ฅ
  • console.log(a, c); → ์ „์น˜ ์—ฐ์‚ฐ
    a๋Š” ๋˜ ์ฆ๊ฐ€ํ•˜์—ฌ 3์„ ์ถœ๋ ฅ
    c๋Š” ์ฆ๊ฐ€ ํ›„ ๊ฐ’์ธ 3์„ ์ถœ๋ ฅ

 

2. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž &&, ||, ! ๋Š” ๋ณดํ†ต ๋ถˆ๋ฆฐ๊ฐ’์„ ์ด์šฉํ•ด ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๊ฒฐ๊ณผ๊ฐ’๋„ ๋ถˆ๋ฆฐ๊ฐ’์ด๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ๋ชจ๋“  ๊ฐ’์ด ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฒฐ๊ณผ๊ฐ’๋„ ๋  ์ˆ˜ ์žˆ๋‹ค.

→ ์ด ๊ฒฝ์šฐ, truthy๊ฐ’๊ณผ falsy๊ฐ’์ด๋ผ๋Š” ๊ฐœ๋…์œผ๋กœ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ํ‰๊ฐ€ํ•œ๋‹ค.

truthy falsy ์™ธ์˜ ๋ชจ๋“  ๊ฐ’ (๋นˆ ๋ฐฐ์—ด๊ณผ ๋นˆ ๊ฐ์ฒด ํฌํ•จ)
falsy ๋นˆ ๋ฌธ์ž์—ด (''), null, 0, undefined, On, NaN

 

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋“ค ์šฐ์„ ์ˆœ์œ„๋Š” ! > && > || ์ˆœ์„œ๋กœ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค.

์—ฐ์‚ฐ์ž ์ˆ˜ํ–‰ ์—ฐ์‚ฐ ํ”ผ์—ฐ์‚ฐ์ž ๊ฐœ์ˆ˜ ๊ฒฐํ•ฉ ๋ฐฉํ–ฅ ์˜ˆ์ œ
&& ๋…ผ๋ฆฌ AND 2 ์ขŒ → ์šฐ x && y > z
|| ๋…ผ๋ฆฌ OR 2 ์ขŒ → ์šฐ x || y > z
! ๋…ผ๋ฆฌ NOT 1 ์šฐ → ์ขŒ !x

 

!!

NOT ์—ฐ์‚ฐ์ž๋ฅผ ์—ฐ์†ํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋ถˆ๋ฆฐํ˜•์ด ์•„๋‹Œ ๊ฐ’์„ ๋ถˆ๋ฆฐํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋‹จ๋ฝ ํ‰๊ฐ€ (Short Circuit)

AND ์—ฐ์‚ฐ์ž์™€ OR ์—ฐ์‚ฐ์ž๋Š” ์—ฐ๋‹ฌ์•„์„œ ์ž‘์„ฑํ•˜๋Š” Chaining์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด ๋•Œ ์•ž์˜ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ๊ฐ ๊ฑฐ์ง“, ์ฐธ์ด๋ผ๋ฉด ๋’ค์˜ ์—ฐ์‚ฐ์€ ํ‰๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ false, true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ ๋ฌธ์„ ๋๋‚ธ๋‹ค.

์ด๋Ÿฐ ์‹์œผ๋กœ ์•ž์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋งŒ ๋ณด๊ณ  ๋’ค์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ํŒ๋‹จํ•˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์„ ๋‹จ๋ฝ ํ‰๊ฐ€๋ผ๊ณ  ํ•œ๋‹ค.

  1. ์™ผ์ชฝ๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ถˆ๋ฆฐํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉฐ ํ‰๊ฐ€
  2. ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋ณ€ํ™˜๊ฐ’์ด false/true๋ฉด ์—ฐ์‚ฐ ๋ฉˆ์ถ”๊ณ  ํ•ด๋‹น ํ”ผ์—ฐ์‚ฐ์ž์˜ ์›๋ž˜๊ฐ’์„ ๋ฆฌํ„ด
  3. ๋ชจ๋“  ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ํ‰๊ฐ€ํ•œ ๊ฒฝ์šฐ, ๋งˆ์ง€๋ง‰ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ฆฌํ„ด (๋ชจ๋‘ false/true)

 

3. ๊ด€๊ณ„ํ˜• ์—ฐ์‚ฐ์ž

๋‘ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ด€๊ณ„๋ฅผ ๊ฒ€์ฆํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ ๋ถˆ๋ฆฐํ˜• ์ด๋ฉฐ, ์ฃผ๋กœ ์กฐ๊ฑด๋ฌธ/๋ฐ˜๋ณต๋ฌธ ๋‚ด ์กฐ๊ฑด์„ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

์—ฐ์‚ฐ์ž ์ˆ˜ํ–‰ ์—ฐ์‚ฐ ํ”ผ์—ฐ์‚ฐ์ž ๊ฐœ์ˆ˜ ๊ฒฐํ•ฉ ๋ฐฉํ–ฅ ์˜ˆ์ œ
>, >=, <, <= Number,BigInt์˜ ๋Œ€์†Œ ๋น„๊ต, String์˜ ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ ๋น„๊ต 2 ์ขŒ โ‡ข ์šฐ x >= y
== ๊ฐ’์˜ ๋™๋“ฑ์„ ํŒ๋‹จ 2 ์ขŒ โ‡ข ์šฐ x == y
=== ๊ฐ’์˜ ์ผ์น˜๋ฅผ ํŒ๋‹จ 2 ์ขŒ โ‡ข ์šฐ x === y
instanceof ๊ฐ์ฒด์˜ ํด๋ž˜์Šค ํ™•์ธ 2 ์ขŒ โ‡ข ์šฐ car instanceof Vehicle
in ๊ฐ์ฒด์— ํŠน์ • ํ”„๋กœํผํ‹ฐ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ 2 ์ขŒ โ‡ข ์šฐ name in Obj

 

 

4. ๋น„ํŠธ ์—ฐ์‚ฐ์ž

์ˆซ์ž์˜ ๋น„ํŠธ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์—ฐ์‚ฐ์ž๋กœ, ํ”ผ์—ฐ์‚ฐ์ž๋Š” 32๋น„ํŠธ ์ •์ˆ˜ ํ‘œํ˜„๋ฒ•์„ ๋”ฐ๋ฅธ๋‹ค

์—ฐ์‚ฐ์ž ์ˆ˜ํ–‰ ์—ฐ์‚ฐ ํ”ผ์—ฐ์‚ฐ์ž ๊ฐœ์ˆ˜ ๊ฒฐํ•ฉ ๋ฐฉํ–ฅ ์˜ˆ์ œ
& ๋น„ํŠธ AND 2 ์ขŒ โ‡ข ์šฐ x & y
| ๋น„ํŠธ OR 2 ์ขŒ โ‡ข ์šฐ   x | y
^ ๋น„ํŠธ XOR 2 ์ขŒ โ‡ข ์šฐ x ^ y
~ ๋น„ํŠธ NOT 1 ์ขŒ โ‡ข ์šฐ ~x
<< ์™ผ์ชฝ ์‹œํ”„ํŠธ 2 ์ขŒ โ‡ข ์šฐ x<<1
>> ๋ถ€ํ˜ธ ๋น„ํŠธ ํ™•์žฅ ์˜ค๋ฅธ์ชฝ ์‹œํ”„ํŠธ 2 ์ขŒ โ‡ข ์šฐ x >> 1
>>>  ๋ถ€ํ˜ธ ๋น„ํŠธ ํ™•์žฅ ์—†๋Š” ์˜ค๋ฅธ์ชฝ ์‹œํ”„ํŠธ 2 ์ขŒ โ‡ข ์šฐ x >>>1

 

 

 

5. ์กฐ๊ฑด ์—ฐ์‚ฐ์ž (์‚ผํ•ญ ์—ฐ์‚ฐ์ž, ๋ฌผ์Œํ‘œ ์—ฐ์‚ฐ์ž)

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์œ ์ผํ•˜๊ฒŒ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ 3๊ฐœ ๊ฐ€์ง€๋Š” 3ํ•ญ ์—ฐ์‚ฐ์ž๋กœ, if else์˜ ์ถ•์•ฝํ˜•์ด๋‹ค.

// if else ์กฐ๊ฑด๋ฌธ
if(a > 1) {
	b = a;
} else {
	b = 2;
}

// ์กฐ๊ฑด ์—ฐ์‚ฐ์ž
b = a > 1 ? a : 2;

 

 

6. ํ• ๋‹น ์—ฐ์‚ฐ์ž

๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž๋กœ, ์šฐ์ธก ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ ์ขŒ์ธก ๊ฐ’์— ํ• ๋‹นํ•œ๋‹ค.

์—ฐ์‚ฐ์ž ํ‘œํ˜„์‹ ๋™๋“ฑํ•œ ํ‘œํ˜„์‹
+= x += y x = x + y
-= x -= y x = x - y
*= x *= y x = x*y
/= x /= y x = x / y
%= x %= y x = x % y
&= x &= y x =  x & y
|= x |= y x = x | y
^= x ^= y x = x ^ y
<<= x <<= y x = x << y
>>= x >>= y x = x >> y
>>>= x >>>= y x = x >>> y
||= x ||= y x = x || y

 

7. ์‰ผํ‘œ ์—ฐ์‚ฐ์ž

ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

for (let i = 0, j = 10; i < j; i++, j--) {
	...
}

 

 

8. typeof ์—ฐ์‚ฐ์ž

ํ”ผ์—ฐ์‚ฐ์ž์˜ ํƒ€์ž…์„ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋‹จํ•ญ ์—ฐ์‚ฐ์ž์ด๋‹ค.

ํ”ผ์—ฐ์‚ฐ์ž ํƒ€์ž… ๊ฒฐ๊ณผ ์˜ˆ์ œ
๋ฌธ์ž์—ด 'string' typeof 'javascript'
์ˆซ์ž 'number' typeof 1
๋ถˆ๋ฆฌ์–ธ 'boolean' typeof true
undefined 'undefined' typeof undefined
null 'object' typeof null
ํ•จ์ˆ˜ 'function' typeof function(){}
๊ฐ์ฒด  'object' typeof {}
์‹ฌ๋ณผ 'symbol' typeof Symbol()
BigInt 'bigint' typeof 1n

 

 

typeof null์˜ ๊ฒฐ๊ณผ๋กœ object๊ฐ€ ๋‚˜์˜ค๋Š” ์ด์œ ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ดˆ์ฐฝ๊ธฐ ์„ค๊ณ„ ์˜ค๋ฅ˜๋กœ ์ƒ๊ธด ๋ฒ„๊ทธ๋กœ, null ํƒ€์ž…์„ ํ™•์ธํ•˜๋ ค๋ฉด ๋™๋“ฑ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

const vehicle = new Vehicle();
console.log(vehicle instanceof Vehicle);	//true
console.log(typeof vehicle);	//'object'

 

 

 

9. nullish ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž

๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž ??์œผ๋กœ ์—ฌ๋Ÿฌ ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ๊ทธ ๊ฐ’์ด ํ™•์ •๋˜์–ด ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

a ?? b์˜ ํ‰๊ณผ ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • a๊ฐ€ null๋„ ์•„๋‹ˆ๊ณ  undefined๋„ ์•„๋‹ˆ๋ฉด a
  • ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ๋Š” b (a๊ฐ€ null || undefined)
x = (a !== null && a !== undefined) ? a : b;

a ?? b

 

OR ์—ฐ์‚ฐ์ž์™€ ๋น„์Šทํ•ด๋ณด์ผ ์ˆ˜ ์žˆ์œผ๋‚˜ null, undefined <-> ์ˆซ์ž 0 ์„ ๊ตฌ๋ถ„์ง€์–ด์•ผํ•  ๋•Œ ์“ฐ๊ธฐ ์ข‹๋‹ค.

let height = 0;

alert(height || 100);	// 100 (0์„ false๋กœ ํŒ๋‹จ)
alert(height ?? 100);	// 0 (์ฒ˜์Œ ๋‚˜ํƒ€๋‚œ defined ๊ฐ’์„ ๋ฐ˜ํ™˜)

๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š์•„์•ผ๋งŒ ๋’ค์˜ ๊ฐ’์„ ๋„˜๊ธฐ๊ธฐ ๋•Œ๋ฌธ์—

0์ด๋‚˜ ๋นˆ ๋ฌธ์ž์—ด๋„ ์ •์ƒ ๋ฐ์ดํ„ฐ๋ผ๊ณ  ๋ณด๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

ํŠน์ง•

  • ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฝค ๋‚ฎ์œผ๋ฏ€๋กœ, ๋ณต์žกํ•œ ํ‘œํ˜„์‹์—์„œ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๊ด„ํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒŒ ์ข‹๋‹ค.
    ๋Œ€๋‹ค์ˆ˜์˜ ์—ฐ์‚ฐ์ž๋ณด๋‹ค ๋‚ฎ๊ณ , ?์™€ =๋ณด๋‹ค๋Š” ๋†’๋‹ค.
  • ์•ˆ์ •์„ฑ ์ด์Šˆ๋กœ &&, ||์™€ chaningํ•˜์—ฌ  ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
    let x = (1 && 2) ?? 3; ๊ณผ ๊ฐ™์ด ์“ธ๊ฑฐ๋ฉด ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

 

 

 

์ฐธ๊ณ 

๋”๋ณด๊ธฐ
๋ฐ˜์‘ํ˜•