๋นํธ์ธ ๊ฐ์ฒด
์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์ ๋ถ๋ฅ
- ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ ๋ค์๊ณผ ๊ฐ์ด ํฌ๊ฒ 3๊ฐ์ ๊ฐ์ฒด๋ก ๋ถ๋ฅํ ์ ์๋ค.
- ํ์ค ๋นํธ์ธ๊ฐ์ฒด
ํ์ค ๋นํธ์ธ ๊ฐ์ฒด๋
ECMAScript
์ฌ์์ ์ ์๋ ๊ฐ์ฒด๋ฅผ ๋งํ๋ฉด, ์ ํ๋ฆฌ์ผ์ด์ ์ ์ญ์ ๊ณตํต ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์คํ ํ๊ฒฝ๊ณผ ๊ด๊ณ์์ด ์ธ์ ๋ ์ฌ์ฉ๊ฐ๋ฅ
์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ก์ ์ ๊ณต ๋จ ๋ฐ๋ผ์ ์ ์ญ ๋ณ์ ์ฒ๋ผ ์ฌ์ฉ ๊ฐ๋ฅ - ํธ์คํธ ๊ฐ์ฒด
ํธ์คํธ ๊ฐ์ฒด๋
ECMAScript
์ฌ์์ ์ ์๋์ด ์์ง ์์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ ์คํํ๊ฒฝ (browser
๋๋Node.js
)์์ ์ถ๊ฐ๋ก ์ ๊ณตํ๋ ๊ฐ์ฒด
๋ธ๋ผ์ฐ์ ํ๊ฒฝ :DOM
,BOM
,Canvas
,XMLHttpRequest
๋ฑ์ WebAPI์ ๊ณต
Node.js ํ๊ฒฝ :path
,os
๋ฑ node.js ์์ ๊ณ ์ ์ API ์ ๊ณต ๊ณต์๋ฌธ์ ์ฐธ์กฐ - ์ฌ์ฉ์ ์ ์ ๊ฐ์ฒด
์ฌ์ฉ์ ์ ์ ๊ฐ์ฒด๋ ๋ง๊ทธ๋๋ก ์ฌ์ฉ์๊ฐ ์ง์ ์ ์ํ ๊ฐ์ฒด๋ฅผ ๋งํ๋ค.
- ํ์ค ๋นํธ์ธ๊ฐ์ฒด
ํ์ค ๋นํธ์ธ ๊ฐ์ฒด
- ์๋ฐ์คํฌ๋ฆฝํธ์์๋
Object
,String
,Number
๋ฑ 40์ฌ๊ฐ์ ํ์ค ๋นํธ์ธ ๊ฐ์ฒด ์ ๊ณต Math
,Reflect
,JSON
์ ์ ์ธํ ํ์ค ๋นํธ์ธ ๊ฐ์ฒด๋ ๋ฌด๋ ์์ฑ์ ํจ์ ๊ฐ์ฒด- ํ์ค ๋นํธ์ธ ๊ฐ์ฒด๋ก ์์ฑํ ์ธ์คํด์ค์ ํ๋กํ ํ์
์ ๋นํธ์ธ ๊ฐ์ฒด์
prototype
์ ๋ฐ์ธ๋ฉ๋ ๊ฐ์ฒด
// String ์์ฑ์ ํจ์์ ์ํ String ๊ฐ์ฒด ์์ฑ
const strObj = new String('Lee'); // String {"Lee"}
// String ์์ฑ์ ํจ์๋ฅผ ํตํด ์์ฑํ strObj ๊ฐ์ฒด์ ํ๋กํ ํ์
์ String.prototype์ด๋ค.
console.log(Object.getPrototypeOf(strObj) === String.prototype); // true
์์๊ฐ๊ณผ ๋ํผ ๊ฐ์ฒด
- ๋ฌธ์์ด์ด๋ ,์ซ์, ๋ถ๋ฆฌ์ธ์ ์์๊ฐ์ด ์กด์ฌํจ์๋ ๋นํธ์ธ ์์ฑ์ ํจ์๊ฐ ์กด์ฌํจ
- ๋ฌธ์์ด, ์ซ์, ๋ถ๋ฆฌ์ธ ๊ฒฝ์ฐ ๊ฐ์ฒด์ฒ๋ผ ์ ๊ทผ ๊ฐ๋ฅ (= ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์ผ์์ ์ผ๋ก ๊ฐ์ฒด๋ก ๋ณํํด์ฃผ๊ธฐ ๋๋ฌธ)
- ๋ฌธ์์ด, ์ซ์, ๋ถ๋ฆฌ์ธ ๊ฐ์ ๋ํด ๊ฐ์ฒด์ฒ๋ผ ์ ๊ทผํ๋ฉด ์์ฑ๋๋ ์
์ ๊ฐ์ฒด๋ฌ ๋ํผ ๊ฐ์ฒด(
wrapper object
)๋ผ๊ณ ํจ - ์ผ์์ ์ผ๋ก ๊ฐ์ฒด๋ก ์ทจ๊ธ๋๊ณ ํด๋น ์ฝ๋ ์คํ ํ ์๋ณ์๊ฐ ์๋์ ์์๊ฐ์ ๊ฐ๋๋ก ๋๋๋ฆฌ๊ณ ๋ํผ ๊ฐ์ฒด๋ ๊ฐ๋น์ง ์ปฌ๋ ์ ์์ํด ์ญ์ ๋จ
์ ์ญ ๊ฐ์ฒด
- ์ ์ญ ๊ฐ์ฒด๋ ์ฝ๋๊ฐ ์คํ๋๊ธฐ ์ด์ ๋จ๊ณ์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ํด ์ด๋ค ๊ฐ์ฒด๋ณด๋ค ๋จผ์ ์์ฑ๋๋ ์ต์์ ๊ฐ์ฒด
- ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ
- ํ์ค ๋นํธ์ธ ๊ฐ์ฒด
- ํธ์คํธ ๊ฐ์ฒด
- var ํค์๋๋ก ์ ์ธํ ์ ์ญ ๋ณ์์ ์ ์ญ ํจ์
- ํน์ง
- ์ ์ญ ๊ฐ์ฒด๋ ๊ฐ๋ฐ์๊ฐ ์๋์ ์ผ๋ก ์์ฑํ ์ ์๋ค. ์ฆ, ์์ฑ์ ํจ์๊ฐ ์ ๊ณต๋์ง ์๋๋ค.
- ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ฅผ ์ฐธ์กฐํ ๋ window(๋๋ global)๋ฅผ ์๋ตํ ์ ์๋ค.
- ์คํํ๊ฒฝ(๋ธ๋ผ์ฐ์ ๋๋ node.js)์ ๋ฐ๋ผ ์ถ๊ฐ์ ์ผ๋ก ํ๋กํผํฐ์ ๋ฉ์๋๋ฅผ ๊ฐ๋๋ค.
- let์ด๋ const๋ก ์ ์ธํ ์ ์ญ ๋ณ์๋ ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ๊ฐ ์๋๋ค
- ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ ํ๋์ ์ ์ญ ๊ฐ์ฒด๋ฅผ ๊ณต์ ํ๋ค. ์ฆ, ์ฝ๋๋ฅผ ๋ถ๋ฆฌํด๋ ํ๋์ ์ ์ญ๊ฐ์ฒด๋ฅผ ๊ณต์ ํจ
๋นํธ์ธ ์ ์ญ ํ๋กํผํฐ
Infinity
: ๋ฌดํ๋๋ฅผ ๋ํ๋ด๋ ์ซ์๊ฐNaN(Not-a-Number)
: ์ซ์๊ฐ ์๋์ ๋ํ๋ด๋ ์ซ์ ๊ฐundefined
: ๋นํธ์ธ ์ ์ญ ํ๋กํผํฐ์ธundefined
๋ ์์๊ฐundefined
๋ฅผ ๊ฐ์ผ๋ก ๊ฐ์ง
๋นํธ์ธ ์ ์ญ ํจ์
- ์ ์ญ์์ ํธ์ถํ ์ ์๋ ๋นํธ์ธ ํจ์ (์ ์ญ๊ฐ์ฒด์ ๋ฉ์๋)
isNaN
: ์ ๋ฌ ๋ฐ์ ์ธ์๊ฐNaN
์ธ์ง ๊ฒ์ฌํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ถ๋ฆฌ์ธ์ผ๋ก ๋ฐํ, ์ธ์๋ฅผ ์ซ์ ํ์ ์ผ๋ก ๋ณํ ํ ๊ฒ์ฌ ์ํparseInt
: ์ ๋ฌ๋ฐ์ ๋ฌธ์์ด ์ธ์๋ฅผ ๋ถ๋ ์์์ ์ซ์๋ก, ์ฆ ์ค์๋ก ํด์ํ์ฌ ๋ฐํparseInt
: ์ ๋ฌ๋ฐ์ ๋ฌธ์์ด ์ธ์๋ฅผ ์ ์๋ก ํด์ํ์ฌ ๋ฐํencodeURI / decodeURI
encodeURI
ํจ์๋ URI(Uniform Resource Identifier)
๋ฅผ ๋ฌธ์์ด๋ก ์ ๋ฌ ๋ฐ์ ์ด์ค์ผ์ดํ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ธ์ฝ๋ฉํ๋ค.
์ธ์ฝ๋ฉ์ด๋ ๋ฌธ์๋ค์ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ๋ณด๋ฅผ ๊ณต์ ํ ๋ ์์คํ ์์ ์ฝ์ ์ ์๋ ์์คํค ๋ฌธ์๋ก ๋ณํํ๋ ๊ฒ์ ๋งํจ
๋์ฝ๋ฉ์ ์ธ์ฝ๋ฉ๋ URI๋ฅผ ์ด์ค์ผ์ดํ์ฒ๋ฆฌ ์ด์ ์ผ๋ก ๋์ฝ๋ฉ ํ๋ ๊ฒ
์๋ฌต์ ์ ์ญ
- ์ ์ธํ์ง ์์ ์๋ณ์๊ฐ ๋ง์น ์ ์ญ๋ณ์ ์ฒ๋ผ ๋์ํ๋ ๊ฒ์ ์๋ฌต์ ์ ์ญ์ด๋ผ๊ณ ํ๋ค.
- ์ ์ธํ์ง ์์ ์๋ณ์์ ๊ฐ์ ํ ๋น ํ๊ฒ ๋๋ฉด ์ ์ญ๊ฐ์ฒด์ ํ๋กํผํฐ๊ฐ ๋๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ํ์ ๋ฐ์
- ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ก ์ถ๊ฐ๋์์ ๋ฟ ๋ณ์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ํธ์ด์คํ ์ด ๋ฐ์ํ์ง ์๋๋ค.
- ํ๋กํผํฐ ์ด๊ธฐ ๋๋ฌธ์ delete๋ก ์ญ์ ๊ฐ๋ฅ
// ์ ์ญ ๋ณ์ x๋ ํธ์ด์คํ
์ด ๋ฐ์ํ๋ค.
console.log(x); // undefined
// ์ ์ญ ๋ณ์๊ฐ ์๋๋ผ ๋จ์ง ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ์ธ y๋ ํธ์ด์คํ
์ด ๋ฐ์ํ์ง ์๋๋ค.
console.log(y); // ReferenceError: y is not defined
var x = 10; // ์ ์ญ ๋ณ์
function foo () {
// ์ ์ธํ์ง ์์ ์๋ณ์์ ๊ฐ์ ํ ๋น
y = 20; // window.y = 20;
}
foo();
// ์ ์ธํ์ง ์์ ์๋ณ์ y๋ฅผ ์ ์ญ์์ ์ฐธ์กฐํ ์ ์๋ค.
console.log(x + y); // 30
'javascript > ๐ study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[4์ฃผ์ฐจ ์คํฐ๋] 23์ฅ-์คํ ์ปจํ ์คํธ (0) | 2022.02.23 |
---|---|
[4์ฃผ์ฐจ ์คํฐ๋] 22์ฅ- this (0) | 2022.02.23 |
[4์ฃผ์ฐจ ์คํฐ๋] 20์ฅ- strict mode (0) | 2022.02.23 |
[3์ฃผ์ฐจ ์คํฐ๋]19์ฅ-ํ๋กํ ํ์ (0) | 2022.02.14 |
[3์ฃผ์ฐจ ์คํฐ๋]18์ฅ-ํจ์์ ์ผ๊ธ๊ฐ์ฒด (0) | 2022.02.14 |
๋๊ธ