์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด ๋ฐ์ดํฐ ํ์ ์ ํฌ๊ฒ ์์ ํ์ ๊ณผ ๊ฐ์ฒด ํ์ ์ผ๋ก ๋๋ ์ ์๋ค.
์์ ํ์
์๋ฐ์คํฌ๋ฆฝํธ์ ์์ ํ์ ์ ๊ฐ์ฒด๊ฐ ์๋ ๋ค๋ฅธ ๋ชจ๋ ํ์ ์ ์๋ฏธํ๋ค.
๊ฐ์ฒด๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๋ฉ์๋๋ฅผ ๊ฐ์ง์ง ์๋๋ค. ES2022 ๊ธฐ์ค์ผ๋ก ์ด 7๊ฐ์ ์์ ํ์ ์ด ์๋ค.
undefined
undefined๋ ์ ์ธํ ํ ๊ฐ์ ํ ๋นํ์ง ์์ ๋ณ์ ๋๋ ๊ฐ์ด ์ฃผ์ด์ง์ง ์์ ์ธ์์ ์๋์ผ๋ก ํ ๋น๋๋ ๊ฐ์ด๋ค.
null
์์ง ๊ฐ์ด ์๊ฑฐ๋ ๋น์ด์๋ ๊ฐ์ ํํ ์ ์ฌ์ฉํ๋ค.
๋ค๋ฅธ ์์๊ฐ๋ค๊ณผ ๋ค๋ฅด๊ฒ "typeof"๋ก null์ ํ์ธํ ์ ํด๋น ํ์ ์ด ์๋๋ผ "object"๋ฅผ ๋ฐํํ๋ค.
- undefined์ null์ ๊ฐ๊ฐ undefined์ null๊ฐ๋ง ๊ฐ์ง ์ ์๋ค.
- undefined๋ ์ ์ธ๋์์ง๋ง ํ ๋น๋์ง ์์ ๊ฐ์ด๊ณ
- null์ ๋ช ์์ ์ผ๋ก ๋น์ด์์์ ๋ํ๋ด๋ ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ค.
Boolean
์ฐธ(true)์ ๊ฑฐ์ง(false)๋ฅผ ๊ฐ์ง ์ ์๋ ๋ฐ์ดํฐ ํ์ .
true, false์ ๊ฐ์ booleanํ์ ๊ฐ ์ธ์๋ ์กฐ๊ฑด๋ฌธ์์ ์ทจ๊ธ ๊ฐ๋ฅํ truthy, falsy ๊ฐ์ด ์กด์ฌํ๋ค.
- falsyํ ๊ฐ๋ค
๊ฐ | ํ์ | ์ค๋ช |
false | Boolean | false๋ ๋ํ์ ์ธ fasly |
0, -0, 0n, 0x0n | Number, BigInt | 0์ ์์์ ์ ๊ด๊ณ ์์ด falsy |
NaN | Number | Number๊ฐ ์๋ NaN์ falsy |
'', "", `` | String | ๊ณต๋ฐฑ ์๋ ๋น ๋ฌธ์์ด์ falsy |
null | null | null์ falsyํ ๊ฐ |
undefined | undefiend | undefined๋ falsyํ ๊ฐ |
Number
๋๋ถ๋ถ์ ์ธ์ด๋ค์ ์ ์์ ์ค์๋ฅผ ๊ตฌ๋ถํด ์ ์ฅํ์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ชจ๋ ์ซ์๋ฅผ ํ๋์ ํ์ ์ ์ ์ฅํ๋ค.
const maxInteger = Math.pow(2,53)
maxInteger - 1 === Number.MAX_SAFE_INTEGER //true
const minInteger = -(Math.pow(2,53)-1)
minInteger === Number.MIN_SAFE_INTEGER // true
const binary = 0b10
binary == (2).toString(2)
const octal = 0o10
octal == (8).toString(8)
const hexadecimal = 0x10
hexadecimal == (16).toString(16)
Bigint
bigInt์๋ number์ ํ๊ณ๋ฅผ ๋์ด์ ๋ ํฐ ์ซ์๋ฅผ ์ ์ฅํ ์ ์๋ค.
String
string์ ํ ์คํธ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
'', "", `` ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ง, ๋ฐฑํฑ(`)์ ์ฌ์ฉํ ๋ฌธ์์ด์ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ด๋ผ๊ณ ํด์ ์ค๋ฐ๊ฟ์ด ๊ฐ๋ฅํ ๋ฌธ์์ด ๋ฐํ์ด ๊ฐ๋ฅํ๊ณ , ๋ฌธ์์ด ๋ด๋ถ์ ํํ์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฌธ์์ด์ ์์ํ์ ์ด๋ฉฐ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ๋ค. ๋ฌธ์์ด์ด ํ๋ฒ ์์ฑ๋๋ฉด ๊ทธ ๋ฌธ์์ด์ ๋ณ๊ฒฝํ ์ ์๋ค.
Symbol
์ฌ๋ณผ์ ์ค๋ณต๋์ง ์๋ ์ด๋ค ๊ณ ์ ํ ๊ฐ์ ๋ํ๋ด๊ธฐ ์ํด ๋ง๋ค์ด์ก๋ค.
์ฌ๋ฒ์ ์ฌ๋ฒ ํจ์๋ฅผ ์ด์ฉํด ๋ง๋ค ์ ์๋ค. (Symbol() ์ฌ์ฉ)
//Symbol์ ๊ฐ์ ์ธ์๋ฅผ ๋๊ฒจ์ฃผ์ด๋, ๋์ผํ ๊ฐ์ผ๋ก ์ธ์ ๋์ง ์์
const key = Symbol('key')
const key2 = Symbol('key')
key === key2 //false
// Symbol.for์ ์ฌ์ฉํ๋ฉด ๋์ผํ ๊ฐ์ผ๋ก ์ธ์ ๋จ
const key3 = Symbol.for('key')
const key4 = Symbol.for('key')
key3 === key4 //true
๊ฐ์ฒด ํ์
7๊ฐ์ง์ ์์ ํ์ ์ ์ ์ธํ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋๋ถ๋ถ์ ๋ชจ๋ ํ์ ์ ๊ฐ์ฒด ํ์ ์ด๋ค.
๊ฐ์ฒด ํ์ ์ ์ฐธ์กฐ๋ฅผ ์ ๋ฌํ๋ค๊ณ ํด์ ์ฐธ์กฐ ํ์ (reference type)์ผ๋ก ๋ถ๋ฆฐ๋ค.
typeof [] === 'object' //true
typeof {} === 'object' //true
function hello(){}
typeof hello === 'function' //true
const hello1 = function(){}
const hello2 = function(){}
hello1 === hello2 //false; ์ฐธ์กฐ๊ฐ ๋ฌ๋ผ์ false ๋ฐํ
๊ฐ์ ์ ์ฅํ๋ ๋ฐฉ์
์์ ํ์ ๊ณผ ๊ฐ์ฒด ํ์ ์ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์์ ์๋ก ๋ค๋ฅด๋ค. (๋๋ฑ ๋น๊ต์ ์ฐจ์ด๋ฅผ ๋ฐ์์ํด)
'๐จLanguage > ์๋ฐ์คํฌ๋ฆฝํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ์๋ฐ์คํฌ๋ฆฝํธ์ ํจ์ (0) | 2024.08.31 |
---|