๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŒŒ | WEB DEV/Vanilla JS

JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (15)_์—ฐ์‚ฐ์ž(์‰ผํ‘œ, null๋ณ‘ํ•ฉ(??) )

by KASSID 2023. 2. 26.

๋ชฉ์ฐจ

    728x90

    ์ง€๊ธˆ๊นŒ์ง€ ์‚ดํŽด๋ณธ ๊ฒƒ ์™ธ์˜ ์—ฐ์‚ฐ์ž๋“ค์— ๋Œ€ํ•ด์„œ๋„ ์•Œ์•„๋ณด์ž!

     

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

    ์™ผ์ชฝ๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ์‹คํ–‰๋˜๋ฉฐ, ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์—ฐ์‚ฐ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

    console.log(
    	(1,2,3)
    );
    
    >>> 3
    
    console.log(
    	(10/2, 5%2, 1+1)
    );
    
    >>> 2

    ์ด์ฒ˜๋Ÿผ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์—ฐ์‚ฐ์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค!

     

    2. null ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž ??

    null ๋˜๋Š” undefined๋ฅผ ๊ฑธ๋Ÿฌ๋‚ผ ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค.

    ์ฆ‰, ์•ž์˜ ์›์†Œ๊ฐ€ ๋‘˜ ์ค‘ ํ•˜๋‚˜์ผ ๊ฒฝ์šฐ ๋’ค์˜ ์›์†Œ๋กœ ๋Œ€์ฒด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค!

    let x;	//undefined
    x ?? console.log('Hello');
    
    x = null;	//null
    x ?? console.log('Hello');
    
    x = 0;
    x ?? console.log('Hello'); //0์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์ข…๋ฃŒ
    
    x = 1;
    x ?? console.log('Hello'); //1์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์ข…๋ฃŒ
    
    >>> Hello
    >>> Hello

     

    ๋ณ‘ํ•ฉ ํ• ๋‹น ์—ฐ์‚ฐ์ž

    ๋ณ‘ํ•ฉ ํ• ๋‹น ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ฐ์‚ฐ์ž๋“ค์ด๋‹ค.

    let x = false;
    let y = '';
    
    x ||= 1;	//x๊ฐ€ falsy์ด๋ฏ€๋กœ ๋‹ค์Œ ์›์†Œ ์กฐ์‚ฌ & ๋ฐ˜ํ™˜
    y &&= 1;	//y๊ฐ€ falsy์ด๋ฏ€๋กœ ์ƒˆ๋กœ ํ• ๋‹นX, ํƒˆ์ถœ
    console.log(x, y);
    
    >>> 1 ''

    ??= ์—ฐ์‚ฐ์ž๋Š” ์•ž์˜ ์š”์†Œ๊ฐ€ null ๋˜๋Š” undefined์ผ ๊ฒฝ์šฐ ๋’ค์˜ ์›์†Œ๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋‹ค.

    let x = null;
    let y = null;
    
    x &&= 1;	//x๊ฐ€ falsy(null)์ด๋ฏ€๋กœ ์ค‘๋‹จ (null๋Œ€์ฒด X)
    y ??= 2;	//y๊ฐ€ null์ด๋ฏ€๋กœ ๋‹ค์Œ ์›์†Œ ์กฐ์‚ฌ & ๋ฐ˜ํ™˜ (null์ด ๋Œ€์ฒด๋จ)
    console.log(x, y);
    
    >>> null 2

    ๋Œ“๊ธ€