๋จ์ถ ํ๊ฐ
๋จ์ถ ํ๊ฐ
๋จ์ถํ๊ฐ
๋ ํํ์์ ํ๊ฐํ๋ ๋์ค์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ ํ์ ๋ ๊ฒฝ์ฐ ๋๋จธ์ง ํ๊ฐ ๊ณผ์ ์ ์๋ตํ๋ ๊ฒ์ ๋งํ๋ค.
์ฆ, ๋
ผ๋ฆฌ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํ๋ ํผ์ฐ์ฌ์๋ฅผ ํ์
๋ณํํ์ง ์๊ณ ๊ทธ๋๋ก ๋ฐํ๋ค.
์๋ฅผ ๋ณด๋ฉด ์๊ธฐ ์ฝ๋ค.
//๋
ผ๋ฆฌํฉ(||) ์ฐ์ฐ์
'Cat' || 'Dog' // => 'Cat'
false || 'Dog' // => 'Dog'
'Cat' || false // =>'Cat'
//๋
ผ๋ฆฌ๊ณฑ(&&) ์ฐ์ฐ์
'Cat' && 'Dog' // => 'Dog'
false && 'Dog' // => false
'Cat' && false // => false
๋ฌธ์์ด์ true
์ด๊ธฐ ๋๋ฌธ์ ์์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ค๊ฒ ๋๋ค.
์ขํญ๋ถํฐ ์์๋๋ก ์ฝ๋ค๊ฐ ์ด ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํ๋ ํผ์ฐ์ฐ์๋ฅผ ๊ทธ๋๋ก ์ถ๋ ฅํ๋ ๊ฒ์ด๋ค.
์ ๋ฆฌํด๋ณด๋ฉด
๋จ์ถํ๊ฐํํ์ | ํ๊ฐ๊ฒฐ๊ณผ |
---|---|
true || anything |
true |
false || anything |
anything |
true && anything |
anything |
false && anything |
false |
# ๋จ์ถํ๊ฐ๊ฐ ์ ์ฉํ๊ฒฝ์ฐ
๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ ๋ณ์๊ฐ null
๋๋ undefined
๊ฐ ์๋์ง ํ์ธํ๊ณ ํ๋กํผํฐ๋ฅผ ์ฐธ์กฐํ ๋
var elem = null;
var value = elem.value; // TypeError: Cannot read property 'value' of null
์๋ ์๋ฌ๊ฐ๋๋ ์ด ๊ฒฝ์ฐ๋ฅผ ๋จ์ถ ํ๊ฐ๋ฅผ ์ด์ฉํ์ฌ ์ก์ ์ ์๋ค
var elem = null;
var value = elem && elem.value; // => null
์ต์ ๋ ์ฒด์ด๋ ์ฐ์ฐ์
ES11์์ ๋์
๋ ์ต์
๋ ์ฒด์ด๋ ์ฐ์ฐ์ ?.
๋ ์ขํญ์ ํผ์ฐ์ฐ์๊ฐ null
๋๋ undefined
์ธ ๊ฒฝ์ฐ undefined
๋ฅผ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฐํญ์ ํ๋กํผํฐ๋ฅผ ์ฐธ์กฐํ๋ค.
var elem = null;
var value = elem?.value;
console.log(value); // undefined
null ๋ณํฉ ์ฐ์ฐ์
ES11์์ ๋์
๋ null๋ณํฉ ์ฐ์ฐ์ ??
๋ ์ขํญ์ ํผ์ฐ์ฐ์ null
๋๋ undefined
์ธ ๊ฒฝ์ฐ ์ฐํญ์ ํผ์ฐ์ฐ์๋ฅผ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ์ขํญ์ ํผ์ฐ์ฐ์๋ฅผ ๋ฐํํ๋ค.
var foo = null ?? 'default string';
console.log(foo); // "default string"
๋๊ธ๋จ๊ธฐ๊ธฐ