๐ค ์์งlog ๐ค
๋จ์ถํ๊ฐ ๋ณธ๋ฌธ
๋ ผ๋ฆฌ๊ณฑ( && ) ์ฐ์ฐ์
'cat' && 'dog' // "dog"
- ๋ ผ๋ฆฌ๊ณฑ(&&) ์ฐ์ฐ์๋ ๋๊ฐ์ ํผ์ฐ์ฐ์๊ฐ ๋ชจ๋ true๋ก ํ๊ฐ๋ ๋ true๋ฅผ ๋ฐํํ๋ค.
- ๋ ผ๋ฆฌ๊ณฑ ์ฐ์ฐ์๋ ์ขํญ์์ ์ฐํญ์ผ๋ก ํ๊ฐ๊ฐ ์งํ๋๋ค.
- ์ฒซ๋ฒ์งธ ํผ์ฐ์ฐ์ 'cat'์ Truthy ๊ฐ์ด๋ฏ๋ก true๋ก ํ๊ฐ๋๋ค.
ํ์ง๋ง ๋๋ฒ์งธ ํผ์ฐ์ฐ์๊ฐ ์ ๋ ผ๋ฆฌ๊ณฑ ์ฐ์ฐ์ ํํ์์ ํ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํ๋ค.
์ด๋ ๋ ผ๋ฆฌ๊ณฑ ์ฐ์ฐ์๋ ๋ ผ๋ฆฌ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํ๋ ๋๋ฒ์งธ ํผ์ฐ์ฐ์,
์ฆ ๋ฌธ์์ด 'dog'๋ฅผ ๊ทธ๋๋ก ๋ฐํํ๋ค.
๋ ผ๋ฆฌํฉ( || ) ์ฐ์ฐ์
'cat' || 'dog' // "cat"
- ๋ ผ๋ฆฌํฉ( || ) ์ฐ์ฐ์๋ ๋๊ฐ์ ํผ์ฐ์ฐ์ ์ค ํ๋๋ง true๋ก ํ๊ฐ๋์ด๋ true๋ฅผ ๋ฐํํ๋ค.
- ๋ ผ๋ฆฌํฉ ์ฐ์ฐ์๋ ์ขํญ์์ ์ฐํญ์ผ๋ก ํ๊ฐ๊ฐ ์งํ๋๋ค.
- ์ฒซ๋ฒ์งธ ํผ์ฐ์ฐ์ 'cat'์ Truthy ๊ฐ์ด๋ฏ๋ก true๋ก ํ๊ฐ๋๋ค.
์ด ์์ ์์ ๋๋ฒ์งธ ํผ์ฐ์ฐ์๊น์ง ํ๊ฐํด๋ณด์ง ์์๋ ์ ํํ์์ ํ๊ฐํ ์์๋ค.
๋ ผ๋ฆฌํฉ ์ฐ์ฐ์๋ ๋ ผ๋ฆฌ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํ ์ฒซ๋ฒ์งธ ํผ์ฐ์ฐ์ 'cat'์ ๊ทธ๋๋ก ๋ฐํํ๋ค.
๋จ์ถํ๊ฐ
๋
ผ๋ฆฌ๊ณฑ( && ) ์ฐ์ฐ์์ ๋
ผ๋ฆฌํฉ( || ) ์ฐ์ฐ์๋ ์ด์ฒ๋ผ ๋
ผ๋ฆฌ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํ๋ ํผ์ฐ์ฐ์๋ฅผ ํ์
๋ณํํ์ง ์๊ณ ๊ทธ๋๋ก ๋ณํํ๋ค.
์ด๋ฅผ ๋จ์ถํ๊ฐ๋ผ ํ๋ค.
๋จ์ถํ๊ฐ๋ ํํ์์ ํ๊ฐํ๋ ๋์ค์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ ํ์ ๋ ๊ฒฝ์ฐ ๋๋จธ์ง ํ๊ฐ ๊ณผ์ ์ ์๋ตํ๋๊ฒ์ ๋งํ๋ค.
๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ๋จ์ถํ๊ฐ๋ฅผ ํตํด ๋
ผ๋ฆฌ์ฐ์ฐ์ ์ํํ๋ค.
๐ ๋จ์ถํ๊ฐ๋ ๋ค์ ๊ท์น์ ๋ฐ๋ฅธ๋ค.
true || anything โ true
false || anything โ anything
true && anything โ anything
false && anything โ false
์ต์ ๋ ์ฒด์ด๋ ์ฐ์ฐ์ (ES11)
์ต์
๋ ์ฒด์ด๋ ์ฐ์ฐ์( ?. )๋ ์ขํญ์ ํผ์ฐ์ฐ์๊ฐ null๋๋ undefined์ธ ๊ฒฝ์ฐ undefined๋ฅผ ๋ฐํํ๊ณ ,
๊ทธ๋ ์ง ์์ผ๋ฉด ์ฐํญ์ ํ๋กํผํฐ ์ฐธ์กฐ๋ฅผ ์ด์ด๊ฐ๋ค.
let coco = null;
// coco๊ฐ null ๋๋ undefined์ด๋ฉด undefined๋ฅผ ๋ฐํํ๊ณ ,
// ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฐํญ์ ํ๋กํผํฐ ์ฐธ์กฐ๋ฅผ ์ด์ด๊ฐ๋ค.
let value = coco?.value;
console.log(value); // undefined
์ต์ ๋ ์ฒด์ด๋ ์ฐ์ฐ์ ?.๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ ๋ณ์๊ฐ null ๋๋ undefined๊ฐ ์๋์ง ํ์ธํ๊ณ ํ๋กํผํฐ๋ฅผ ์ฐธ์กฐํ ๋ ์ ์ฉํ๋ค.
null๋ณํฉ ์ฐ์ฐ์ (ES11)
null๋ณํฉ ์ฐ์ฐ์( ?? )๋ ์ขํญ์ ํผ์ฐ์ฐ์๊ฐ null ๋๋ undefined์ธ ๊ฒฝ์ฐ ์ฐํญ์ ํผ์ฐ์ฐ์๋ฅผ ๋ฐํํ๊ณ ,
๊ทธ๋ ์ง ์์ผ๋ฉด ์ขํญ์ ํผ์ฐ์ฐ์๋ฅผ ๋ฐํํ๋ค.
null ๋ณํฉ ์ฐ์ฐ์ ??๋ ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ ๋ ์ ์ฉํ๋ค.
// ์ขํญ์ ํผ์ฐ์ฐ์๊ฐ null ๋๋ undefined์ด๋ฉด ์ฐํญ์ ํผ์ฐ์ฐ์๋ฅผ ๋ฐํํ๊ณ ,
// ๊ทธ๋ ์ง ์์ผ๋ฉด ์ขํญ์ ํผ์ฐ์ฐ์๋ฅผ ๋ฐํํ๋ค.
let coco = null ?? 'default string';
console.log(coco); // "default string"
'๐ ๋ชจ๋Javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์๊ฐ๊ณผ ๊ฐ์ฒด ๋น๊ต (0) | 2022.09.28 |
---|---|
๊ฐ์ฒด ๋ฆฌํฐ๋ด (0) | 2022.09.28 |
ํ์ ๋ณํ (0) | 2022.09.28 |
๋ฐ๋ณต ๋ฌธ (0) | 2022.09.28 |
ํ ๋น์ฐ์ฐ์ (0) | 2022.09.28 |