๐ซง ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ - ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ณธ ๐ซง
๋ณ์์ ์์
let - ๋ชจ๋ํ ๋ณ์ ์ ์ธ ํค์๋
var - ์ค๋๋ ๋ณ์ ์ ์ธ ํค์๋
const - ๋ณ์์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์
์๋ฃํ
'null' ๊ฐ
๋ค๋ฅธ ์ธ์ด - ์กด์ฌํ์ง ์๋ ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ
์๋ฐ์คํฌ๋ฆฝํธ - ์กด์ฌํ์ง ์๋ ๊ฐ, ๋น์ด ์๋ ๊ฐ, ์ ์ ์๋ ๊ฐ
'undefined' ๊ฐ
๊ฐ์ด ํ ๋น๋์ง ์์ ์ํ
typeof ์ฐ์ฐ์
์ธ์์ ์๋ฃํ์ ๋ํ๋ด๋ ๋ฌธ์์ด์ ๋ฐํ
์ฐ์ฐ์ - typeof x
ํจ์ - typeof(x)
alert, prompt, confirm์ ์ด์ฉํ ์ํธ์์ฉ
alert
๋ฉ์์ง๊ฐ ์๋ ์์ ์ฐฝ์ธ ๋ชจ๋ฌ ์ฐฝ์ ๋์
(๋ชจ๋ฌ - ํ์ด์ง์ ๋๋จธ์ง ๋ถ๋ถ๊ณผ ์ํธ ์์ฉ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ ์๋ฏธ ๋ดํฌ)
prompt
prompt(title, [default])
title - ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค ๋ฌธ์์ด
default - ์ ๋ ฅ ํ๋์ ์ด๊น๊ฐ(์ ํ๊ฐ)
ํจ์๊ฐ ์คํ๋๋ฉด ํ ์คํธ ๋ฉ์์ง์ ์ ๋ ฅ ํ๋, ํ์ธ ๋ฐ ์ทจ์ ๋ฒํผ์ด ์๋ ๋ชจ๋ฌ ์ฐฝ์ ๋์
์ฌ์ฉ์๊ฐ ์ ๋ ฅ ํ๋์ ๊ธฐ์ฌํ ๋ฌธ์์ด ๋ฐํ, ์ ๋ ฅ ์ทจ์ํ ๊ฒฝ์ฐ null ๋ฐํ
confirm
๋งค๊ฐ๋ณ์๋ก ๋ฐ์ question(์ง๋ฌธ)๊ณผ ํ์ธ ๋ฐ ์ทจ์ ๋ฒํผ์ด ์๋ ๋ชจ๋ฌ ์ฐฝ์ ๋ณด์ฌ์ค
ํ์ธ ๋ฒํผ ๋๋ฅด๋ฉด true, ๊ทธ ์ธ์ ๊ฒฝ์ฐ๋ false
ํ ๋ณํ
์ซ์ํ์ผ๋ก ๋ณํ
undefined ์ ๋ฌ -> NaN
null ์ ๋ฌ -> 0
true and false ์ ๋ฌ -> 1๊ณผ 0
string ์ ๋ฌ -> ๋ฌธ์์ด์ ์ฒ์๊ณผ ๋ ๊ณต๋ฐฑ ์ ๊ฑฐ / ๊ณต๋ฐฑ ์ ๊ฑฐ ํ ๋จ์์๋ ๋ฌธ์์ด ์์ผ๋ฉด 0, ๊ทธ๋ ์ง ์๋ค๋ฉด ๋ฌธ์์ด์์ ์ซ์ ์ฝ์ / ๋ณํ์ ์คํจํ๋ฉด NaN
ex) alert( Number("123z") ); // NaN ("z"๋ฅผ ์ซ์๋ก ๋ณํํ๋ ๋ฐ ์คํจํจ)
๋ถ๋ฆฐํ์ผ๋ก ๋ณํ
์ซ์ 0, ๋น ๋ฌธ์์ด, null, undefined, NaN๊ณผ ๊ฐ์ด ์ง๊ด์ ์ผ๋ก ๋น์ด์๋ค๊ณ ๋๊ปด์ง๋ ๊ฐ์ false
๋ฌธ์์ด "0"๊ณผ " "๊ฐ์ ๊ณต๋ฐฑ์ ๋ถ๋ฆฐํ์ผ๋ก ๋ณํ ์ true
๊ธฐ๋ณธ ์ฐ์ฐ์์ ์ํ
๋จํญ ์ฐ์ฐ์ +์ ์ซ์ํ์ผ๋ก์ ๋ณํ
ํผ์ฐ์ฐ์๊ฐ ์ซ์๊ฐ ์๋ ๊ฒฝ์ฐ์ ์ซ์ํ์ผ๋ก์ ๋ณํ ์ผ์ด๋จ
์ผํ ์ฐ์ฐ์
์ฌ๋ฌ ํํ์์ ์ฝ๋ ํ ์ค์์ ํ๊ฐํ ์ ์๊ฒ ํจ
ํํ์ ๊ฐ๊ฐ์ด ๋ชจ๋ ํ๊ฐ๋์ง๋ง, ๋ง์ง๋ง ํํ์์ ํ๊ฐ ๊ฒฐ๊ณผ๋ง ๋ฐํ๋จ
์ผํ ์ฐ์ฐ์์ ์ฐ์ฐ์ ์ฐ์ ์์๋ ๋งค์ฐ ๋ฎ์
๋น๊ต ์ฐ์ฐ์
์ผ์น ์ฐ์ฐ์
๋๋ฑ ์ฐ์ฐ์ ==์ 0๊ณผ ๋น ๋ฌธ์์ด๊ณผ false๋ฅผ ๊ตฌ๋ณํ์ง ๋ชปํจ
๋๋ฑ ์ฐ์ฐ์ ==์ null๊ณผ undefined๋ฅผ
-> ์ผ์น ์ฐ์ฐ์ ===์ ์ฌ์ฉํด์ผ ํจ
๋น๊ต๊ฐ ๋ถ๊ฐ๋ฅํ undefined
undefined๋ ํญ์ false ๋ฐํ
๋ ผ๋ฆฌ ์ฐ์ฐ์
์ฒซ ๋ฒ์งธ truthy๋ฅผ ์ฐพ๋ OR ์ฐ์ฐ์ '||'
1. ๋ณ์ ๋๋ ํํ์์ผ๋ก ๊ตฌ์ฑ๋ ๋ชฉ๋ก์์ ์ฒซ ๋ฒ์งธ truthy ์ป๊ธฐ
๊ฐ์ฅ ์ผ์ชฝ ํผ์ฐ์ฐ์๋ถํฐ ์์ํด ์ค๋ฅธ์ชฝ์ผ๋ก ๋์๊ฐ๋ฉฐ ํผ์ฐ์ฐ์๋ฅผ ํ๊ฐํจ
๊ฐ ํผ์ฐ์ฐ์๋ฅผ ๋ถ๋ฆฐํ์ผ๋ก ๋ณํํจ -> ๊ฐ์ด true์ด๋ฉด ์ฐ์ฐ ๋ฉ์ถ๊ณ ํด๋น ํผ์ฐ์ฐ์์ ๋ณํ ์ ์๋ ๊ฐ์ ๋ฐํ
ํผ์ฐ์ฐ์ ๋ชจ๋๋ฅผ ํ๊ฐํ ๊ฒฝ์ฐ(๋ชจ๋ ํผ์ฐ์ฐ์๊ฐ false๋ก ํ๊ฐ๋๋ ๊ฒฝ์ฐ) ๋ง์ง๋ง ํผ์ฐ์ฐ์ ๋ฐํ
2. ๋จ๋ฝ ํ๊ฐ
์ผ์ชฝ๋ถํฐ ์์ํด์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ๊ฐ๋ฅผ ์งํํ๋๋ฐ, truthy๋ฅผ ๋ง๋๋ฉด ๋๋จธ์ง ๊ฐ๋ค์ ๊ฑด๋๋ฆฌ์ง ์์ ์ฑ ํ๊ฐ ๋ฉ์ถค
๋ ๋ฒ์งธ ํผ์ฐ์ฐ์๊ฐ ๋ณ์ ํ ๋น๊ณผ ๊ฐ์ ๋ถ์์ ์ธ ํจ๊ณผ๋ฅผ ๊ฐ์ง๋ ํํ์์ผ ๋ ๋ช ํํ ๋ณผ ์ ์์
์ฒซ ๋ฒ์งธ falsy๋ฅผ ์ฐพ๋ AND ์ฐ์ฐ์ '&&'
๊ฐ์ฅ ์ผ์ชฝ ํผ์ฐ์ฐ์๋ถํฐ ์์ํด ์ค๋ฅธ์ชฝ์ผ๋ก ๋์๊ฐ๋ฉฐ ํผ์ฐ์ฐ์๋ฅผ ํ๊ฐํจ
๊ฐ ํผ์ฐ์ฐ์๋ฅผ ๋ถ๋ฆฐํ์ผ๋ก ๋ณํํจ -> ๊ฐ์ด false์ด๋ฉด ์ฐ์ฐ ๋ฉ์ถ๊ณ ํด๋น ํผ์ฐ์ฐ์์ ๋ณํ ์ ์๋ ๊ฐ์ ๋ฐํ
ํผ์ฐ์ฐ์ ๋ชจ๋๋ฅผ ํ๊ฐํ ๊ฒฝ์ฐ(๋ชจ๋ ํผ์ฐ์ฐ์๊ฐ true๋ก ํ๊ฐ๋๋ ๊ฒฝ์ฐ) ๋ง์ง๋ง ํผ์ฐ์ฐ์ ๋ฐํ
&&์ ์ฐ์ ์์๊ฐ ||๋ณด๋ค ๋์
nullish ๋ณํฉ ์ฐ์ฐ์ '??'
์ฌ๋ฌ ํผ์ฐ์ฐ์ ์ค ๊ทธ ๊ฐ์ด ํ์ ๋์ด์๋ ๋ณ์๋ฅผ ์ฐพ์ ์ ์์
a ?? b
a๊ฐ null๋ ์๋๊ณ Undefine๋ ์๋๋ฉด a / ๊ทธ ์ธ์ ๊ฒฝ์ฐ๋ b
'??'์ '||'์ ์ฐจ์ด
|| - ์ฒซ ๋ฒ์งธ truthy ๊ฐ ๋ฐํ / ?? - ์ฒซ ๋ฒ์งธ ์ ์๋ ๊ฐ ๋ฐํ
ํจ์
ํจ์ ์ ์ธ
function showMessage() {
alert('์๋ ํ์ธ์!');
}
ํจ์ ํํ์
์๋ฐ์คํฌ๋ฆฝํธ๋ ํจ์๋ฅผ ํน๋ณํ ์ข ๋ฅ์ "๊ฐ"์ผ๋ก ์ธ์ (ํน๋ณํ ๋์์ ํ๋ ๊ตฌ์กฐ๋ก ์ทจ๊ธํ์ง ์์)
์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๊ดํธ๊ฐ ์์ด์ผ๋ง ํจ์๊ฐ ํธ์ถ๋จ
ํจ์๋ฅผ ๋ณต์ฌํด ๋ค๋ฅธ ๋ณ์์ ํ ๋นํ ์ ์์
๊ฐ์ฒ๋ผ ํ ๋น, ๋ณต์ฌ, ์ ์ธ ๊ฐ๋ฅ
์ฝ๋ฐฑ ํจ์
ํจ์๋ฅผ ๊ฐ์ฒ๋ผ ์ ๋ฌ
ํจ์๋ฅผ ํจ์์ ์ธ์๋ก ์ ๋ฌํ๊ณ , ํ์ํ๋ค๋ฉด ์ธ์๋ก ์ ๋ฌํ ๊ทธ ํจ์๋ฅผ ๋์ค์ ํธ์ถ
ํจ์ ํํ์ vs ํจ์ ์ ์ธ๋ฌธ
ํจ์ ํํ์ - ์ค์ ์คํ ํ๋ฆ์ด ํด๋น ํจ์์ ๋๋ฌํ์ ๋ ํจ์ ์์ฑ / ์คํ ํ๋ฆ์ด ํจ์์ ๋๋ฌํ์ ๋๋ณดํฐ ์ฌ์ฉ ๊ฐ๋ฅ
ํจ์ ์ ์ธ๋ฌธ - ํจ์ ์ ์ธ๋ฌธ์ด ์ ์๋๊ธฐ ์ ์๋ ํธ์ถ ๊ฐ๋ฅ
ํ์ดํ ํจ์ ๊ธฐ๋ณธ
let func = (arg1, arg2, ...argN) => expression