ํฐ์คํ ๋ฆฌ ๋ทฐ
[JavaScript] ๋นํธ์ธ ๊ฐ์ฒด
๊ฐ๋ฐ๊ฐ๊ตด๐ธ 2022. 7. 25. 23:01์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์ ๋ถ๋ฅ
์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ ๋ค์๊ณผ ๊ฐ์ด ํฌ๊ฒ 3๊ฐ์ ๊ฐ์ฒด๋ก ๋ถ๋ฅํ ์ ์์ต๋๋ค.
์ข ๋ฅ | ์ค๋ช |
ํ์ค ๋นํธ์ธ ๊ฐ์ฒด | - ESMAScript ์ฌ์์ ์ ์๋ ๊ฐ์ฒด - ์ ํ๋ฆฌ์ผ์ด์ ์ ์ญ์ ๊ณตํต ๊ธฐ๋ฅ์ ์ ๊ณต - ์๋ฐ์คํฌ๋ฆฝํธ ์คํ ํ๊ฒฝ๊ณผ ๊ด๊ณ์์ด ์ธ์ ๋ ์ฌ์ฉ ๊ฐ๋ฅ - ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ก์ ์ ๊ณต๋จ - ๋ณ๋์ ์ ์ธ ์์ด ์ ์ญ ๋ณ์์ฒ๋ผ ์ธ์ ๋ ์ฐธ์กฐ ๊ฐ๋ฅ |
ํธ์คํธ ๊ฐ์ฒด | - ์๋ฐ์คํฌ๋ฆฝํธ ์คํ ํ๊ฒฝ์์ ์ถ๊ฐ๋ก ์ ๊ณตํ๋ ๊ฐ์ฒด (ESMAScript ์ฌ์์ ์ ์๋ ๊ฐ์ฒดX) - ๋ธ๋ผ์ฐ์ ํ๊ฒฝ : *ํด๋ผ์ด์ธํธ ์ฌ์ด๋ Web API๋ฅผ ํธ์คํธ ๊ฐ์ฒด๋ก ์ ๊ณต - Node.js ํ๊ฒฝ : ๊ณ ์ ์ API๋ฅผ ํธ์คํธ ๊ฐ์ฒด๋ก ์ ๊ณต |
์ฌ์ฉ์ ์ ์ ๊ฐ์ฒด | - ์ฌ์ฉ์๊ฐ ์ง์ ์ ์ํ ๊ฐ์ฒด (ํ์ค ๋นํธ์ธ ๊ฐ์ฒด์ ํธ์คํธ ๊ฐ์ฒด์ฒ๋ผ ๊ธฐ๋ณธ ์ ๊ณต๋๋ ๊ฐ์ฒดX) |
*ํด๋ผ์ด์ธํธ ์ฌ์ด๋ Web API : DOM, BOM, Canvas, XMLHttpRequest, fetch, requestAnimationFrame, SVG, Web Strorage, Web Component, Web Worker
ํ์ค ๋นํธ์ธ ๊ฐ์ฒด
์๋ฐ์คํฌ๋ฆฝํธ๋ 40์ฌ ๊ฐ์ ํ์ค ๋นํธ์ธ ๊ฐ์ฒด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- Object, String, Number, Boolean, Symbol, Date, Math, RegExp, Array, Map/Set, WeakMap/WeakSet, Function, Promise, Reflect, Proxy, Json, Error ๋ฑ
์ด์ค Math, Reflect, Json์ ์ ์ธํ ๋ชจ๋ ํ์ค ๋น๋์ธ ๊ฐ์ฒด๋ ์์ฑ์ ํจ์ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ ํ๋กํ ํ์ ๋ฉ์๋์ ์ ์ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค. (Math, Reflect, Json์ ์ ์ ๋ฉ์๋๋ง ์ ๊ณต)
์๋ฅผ ๋ค์ด, ํ์ค ๋นํธ์ธ ๊ฐ์ฒด์ธ String๊ณผ Number๋ ์์ฑ์ ํจ์๋ก ํธ์ถํ์ฌ ์ธ์คํด์ค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
// String ์์ฑ์ ํจ์์ ์ํ String ๊ฐ์ฒด ์์ฑ
const strObj = new String('Lee'); // String {"Lee"}
console.log(typeof strObj); // object
// String ์์ฑ์ ํจ์๋ฅผ ํตํด ์์ฑํ strObj ๊ฐ์ฒด์ ํ๋กํ ํ์
์ String.prototype
console.log(Object.getPrototypeOf(strObj) === String.prototype); // true
// Number ์์ฑ์ ํจ์์ ์ํ Number ๊ฐ์ฒด ์์ฑ
const numObj = new Number(1.5); // Number {1.5}
console.log(typeof numObj); // object
// toFixed๋ Number.prototype์ ํ๋กํ ํ์
๋ฉ์๋
// Number.prototype์.toFixed๋ ์์์ ์๋ฆฌ๋ฅผ ๋ฐ์ฌ๋ฆผํ์ฌ ๋ฌธ์์ด๋ก ๋ฐํ
console.log(numObj.toFixed()); // 2
// isInteger๋ Number์ ์ ์ ๋ฉ์๋
// Number.isInteger๋ ์ธ์๊ฐ ์ ์์ธ์ง ๊ฒ์ฌํ์ฌ ๊ฒฐ๊ณผ๋ฅผ Boolean์ผ๋ก ๋ฐํ
console.log(numObj.isInteger(0.5)); // false
- ์์ฑ์ ํจ์์ธ ํ์ค ๋นํธ์ธ ๊ฐ์ฒด(String, Number)๊ฐ ์์ฑํ ์ธ์คํด์ค์ ํ๋กํ ํ์ ์ ํ์ค ๋นํธ์ธ ๊ฐ์ฒด์ prototype ํ๋กํผํฐ์ ๋ฐ์ธ๋ฉ๋์ด ๋ค์ํ ๊ธฐ๋ฅ์ ๋นํธ์ธ ํ๋กํฌํ์ ๋ฉ์๋๋ฅผ ์ ๊ณต
- ํ์ค ๋นํธ์ธ ๊ฐ์ฒด๋ ์ธ์คํด์ค ์์ด๋ ํธ์ถ ๊ฐ๋ฅํ ๋นํธ์ธ ์ ์ ๋ฉ์๋๋ฅผ ์ ๊ณต(Number.isInteger)
์์๊ฐ๊ณผ ๋ํผ ๊ฐ์ฒด
์์๊ฐ์ ๊ฐ์ฒด์ฒ๋ผ ์ฌ์ฉํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์๋ฌต์ ์ผ๋ก ์ฐ๊ด๋ ๊ฐ์ฒด์ธ *๋ํผ ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ์์ฑ๋ ๊ฐ์ฒด๋ก ํ๋กํผํฐ์ ์ ๊ทผํ๊ฑฐ๋ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ๋ค์ ์์๊ฐ์ผ๋ก ๋๋๋ฆฝ๋๋ค.
*๋ํผ ๊ฐ์ฒด : ๋ฌธ์์ด, ์ซ์, ๋ถ๋ฆฌ์ธ ๊ฐ์ ๋ํด ๊ฐ์ฒด์ฒ๋ผ ์ ๊ทผํ๋ฉด ์์ฑ๋๋ ์์ ๊ฐ์ฒด
const str = 'hi';
// ์์ ํ์
์ธ ๋ฌธ์์ด์ด ๋ํผ ๊ฐ์ฒด์ธ String ์ธ์คํด์ค๋ก ๋ณํ
console.log(str.length); // 2
console.log(str.toUpperCase()); // HI
// ๋ํผ ๊ฐ์ฒด๋ก ํ๋กํผํฐ์ ์ ๊ทผํ๊ฑฐ๋ ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ค, ๋ค์ ์์๊ฐ์ผ๋ก ๋๋๋ฆผ
console.log(typeof str); // string
- ๋ฌธ์์ด์ ๋ํด ๋ง์นจํ ํ๊ธฐ๋ฒ์ผ๋ก ์ ๊ทผํ๋ฉด ๊ทธ ์๊ฐ ๋ํผ ๊ฐ์ฒด์ธ String ์์ฑ์ ํจ์์ ์ธ์คํด์ค๊ฐ ์์ฑ๋๊ณ ๋ฌธ์์ด์ ๋ํผ ๊ฐ์ฒด์ [[StringData]] ๋ด๋ถ ์ฌ๋กฏ์ ํ ๋น๋จ
- ๋ฌธ์์ด ๋ํผ ๊ฐ์ฒด์ธ String ์์ฑ์ ํจ์์ ์ธ์คํด์ค๋ String.prototype์ ๋ฉ์๋๋ฅผ ์์๋ฐ์ ์ฌ์ฉํ ์ ์์
- ๋ํผ ๊ฐ์ฒด์ ์ฒ๋ฆฌ๊ฐ ์ข ๋ฃ๋๋ฉด ๋ํผ ๊ฐ์ฒด์ [[StringData]] ๋ด๋ถ ์ฌ๋กฏ์ ํ ๋น๋ ์์๊ฐ์ธ ์๋์ ์ํ๋ก ๋๋๋ฆฌ๊ณ ๋ํผ ๊ฐ์ฒด๋ ๊ฐ๋น์ง ์ปฌ๋ ์ ๋์์ด๋จ
์ด๋ฌํ ์ด์ ๋๋ฌธ์ ๋ฌธ์์ด, ์ซ์, ๋ถ๋ฆฌ์ธ ๋ฑ์ ์์๊ฐ์ด ์๋๋ฐ๋ ์์ด, ์ซ์, ๋ถ๋ฆฌ์ธ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ String, Number, Boolean ๋ฑ์ ํ์ค ๋นํธ์ธ ์์ฑ์ ํจ์๊ฐ ์กด์ฌํฉ๋๋ค.
** null๊ณผ undefined๋ ๋ํผ ๊ฐ์ฒด๋ฅผ ์์ฑํ์ง ์์
์ ์ญ ๊ฐ์ฒด
์ ์ญ ๊ฐ์ฒด๋ ์ฝ๋๊ฐ ์คํ๋๊ธฐ ์ด์ ๋จ๊ณ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ํด ์ด๋ค ๊ฐ์ฒด๋ณด๋ค๋ ๋จผ์ ์์ฑ๋๋ ํน์ํ ๊ฐ์ฒด๋ก ์ด๋ค ๊ฐ์ฒด์๋ ์ํ์ง ์์ ์ต์์ ๊ฐ์ฒด์ ๋๋ค.
์ ์ญ ๊ฐ์ฒด | ์ค๋ช |
window | ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์ ์ ์ญ ๊ฐ์ฒด |
global | Node.js ํ๊ฒฝ์ ์ ์ญ ๊ฐ์ฒด |
globalThis | ES11์์ ๋์ ๋ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ๊ณผ Node.js ํ๊ฒฝ์ ํตํฉ ์ ์ญ ๊ฐ์ฒด |
์ ์ญ ๊ฐ์ฒด์ ํน์ง
- ์ ์ญ ๊ฐ์ฒด๋ ๊ฐ๋ฐ์๊ฐ ์๋์ ์ผ๋ก ์์ฑํ ์ ์์ (์ ์ญ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ ์์ฑ์ ํจ์ ์ ๊ณตX)
- ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ฅผ ์ฐธ์กฐํ ๋ window(๋๋ global)๋ฅผ ์๋ตํ ์ ์์
- ํ์ค ๋นํธ์ธ ๊ฐ์ฒด์ ํธ์คํธ ๊ฐ์ฒด๋ฅผ ํ๋กํผํฐ๋ก ์์ ํจ
- var ํค์๋๋ก ์ ์ธํ ์ ์ญ ๋ณ์, ์๋ฌต์ ์ ์ญ, ์ ์ญํจ์๋ ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ
๋นํธ์ธ ์ ์ญ ํ๋กํผํฐ
์ฃผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ญ์์ ์ฌ์ฉํ๋ ๊ฐ์ ์ ๊ณตํ๋ ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
- Infinity : ๋ฌดํ๋๋ฅผ ๋ํ๋ด๋ ์ซ์๊ฐ Infinity๋ฅผ ๊ฐ๋ ํ๋กํผํฐ
- NaN : ์ซ์๊ฐ ์๋์ ๋ํ๋ด๋ ์ซ์๊ฐ NaN์ ๊ฐ๋ ํ๋กํผํฐ
- undefined : ์์ ํ์ undefined๋ฅผ ๊ฐ์ผ๋ก ๊ฐ๋ ํ๋กํผํฐ
๋นํธ์ธ ์ ์ญ ํจ์
์ ํ๋ฆฌ์ผ์ด์ ์ ์ญ์์ ํธ์ถํ ์ ์๋ ๋นํธ์ธ ํจ์๋ก์ ์ ์ญ ๊ฐ์ฒด์ ๋ฉ์๋์ ๋๋ค.
- eval
- ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด์ ์ธ์๋ก ์ ๋ฌ๋ฐ์ ํํ์์ด๋ผ๋ฉด ๊ฐ์ ์์ฑํ๊ณ ํํ์์ด ์๋ ๋ฌธ์ด๋ผ๋ฉด ์ฝ๋๋ฅผ ์คํ (๋ฐํ์์ ํ๊ฐํ์ฌ ์์ฑ/์คํ)
- ์ธ์๋ก ์ ๋ฌ๋ฐ์ ๋ฌธ์์ด ์ฝ๋๊ฐ ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค๋ฉด ๋ชจ๋ ๋ฌธ์ ์คํํ ๋ค์ ๋ง์ง๋ง ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํ
- ์์ ์ ํธ์ถ๋ ์์น์ ํด๋นํ๋ ๊ธฐ์กด์ ์ค์ฝํ๋ฅผ ๋ฐํ์์ ๋์ ์ผ๋ก ์์ (strict mode์์๋ ์์ ํ์ง ์๊ณ ์์ฒด์ ์ธ ์ค์ฝํ๋ฅผ ์์ฑ. let, const ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฌต์ ์ผ๋ก strict mode๊ฐ๋จ)
- ๋ณด์์ ์ทจ์ฝํ๊ณ ์ฒ๋ฆฌ ์๋๊ฐ ๋๋ฆฌ๋ค๋ ๋จ์ ์ด ์์ด์ ์ฌ์ฉ X
// 1. ํํ์์ธ ๋ฌธ
eval('1 + 2;'); // 3
// 2. ํํ์์ด ์๋ ๋ฌธ
eval('var x = 5;'); // undefined
// eval ํจ์์ ์ํด ๋ฐํ์์ ๋ณ์ ์ ์ธ๋ฌธ์ด ์คํ๋์ด x ๋ณ์๊ฐ ์ ์ธ๋จ
console.log(x); // 5
// 3. ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ๋ฐ๋์ ๊ดํธ๋ก ๋๋ฌ์
const o = eval('({ a: 1 })');
console.log(o); // {a: 1}
// 4. ํจ์ ๋ฆฌํฐ๋ด์ ๋ฐ๋์ ๊ดํธ๋ก ๋๋ฌ์
const f = eval('(function() { return 1; })');
console.log(f()); // 1
// 5. ๋ง์ง๋ง ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํ
eval('1 + 2; 3 + 4;'); // 7
// 6. ๊ธฐ์กด์ ์ค์ฝํ๋ฅผ ๋ฐํ์์ ๋์ ์ผ๋ก ์์
const x = 1;
function foo() {
// eval ํจ์๋ ๋ฐํ์์ foo ํจ์์ ์ค์ฝํ๋ฅผ ๋์ ์ผ๋ก ์์
eval('var 2 = 2;');
console.log(x); // 2
}
foo();
console.log(x); // 1
- isFinite : ์ ๋ฌ๋ฐ์ ์ธ์๊ฐ ์ ์์ ์ธ ์ ํ์์ธ์ง ๊ฒ์ฌํ์ฌ ์ ํ์๋ฉด true๋ฅผ, ๋ฌดํ์๋ฉด false๋ฅผ ๋ฐํ
isFinite(0); // true
isFinite(2e64); // true
isFinite('10'); // true : '10' -> 10
isFinite(null); // true : null -> 0
isFinite(Infinity); // false
isFinite(-Infinity); // false
isFinite(NaN); // false
- isNaN : ์ ๋ฌ๋ฐ์ ์ธ์๊ฐ NaN์ธ์ง ๊ฒ์ฌํ์ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ถ๋ฆฌ์ธ ํ์ ์ผ๋ก ๋ฐํ
isNaN(NaN); // true
isNaN(10); // false
isNaN('blabla'); // true : 'blabla' -> NaN
isNaN('10'); // false : '10' -> 10
isNaN(''); // false : '' -> 0
isNaN(' '); // false : ' ' -> 0
isNaN(true); // false : true -> 1
isNaN(null); // false : null -> 0
isNaN(undefined); // true : undefined -> NaN
isNaN({}); // true : {} -> NaN
isNaN(new Date()); // false : new Date() -> Number
isNaN(new Date().toString()); // true : String -> NaN
- parseFloat : ์ ๋ฌ๋ฐ์ ๋ฌธ์์ด ์ธ์๋ฅผ ๋ถ๋ ์์์ ์ซ์(์ค์)๋ก ํด์ํ์ฌ ๋ฐํ
parseFloat('3.14'); // 4.14
parseFloat('10.00'); // 10
parseFloat('34 45 56'); // 34
parseFloat('40 years'); // 40
parseFloat('He was 40'); // NaN
parseFloat(' 70 '); // 70
- parseInt : ์ ๋ฌ๋ฐ์ ๋ฌธ์์ด ์ธ์๋ฅผ ์ ์๋ก ํด์ํ์ฌ ๋ฐํ
parseInt('10'); // 10
parseInt('10.12'); // 10
parseInt(10); // 10
parseInt(10.12); // 10
// 2์ง์๋ก ํด์ํด์ 10์ง์ ์ ์๋ก ๋ฐํ
parseInt('10', 2); // 2
// 8์ง์๋ก ํด์ํด์ 10์ง์ ์ ์๋ก ๋ฐํ
parseInt('10', 8); // 8
// 16์ง์ ๋ฆฌํฐ๋ด '0xf'๋ฅผ 16์ง์๋ก ํด์ํด์ 10์ง์ ์ ์๋ก ๋ฐํ (2, 8์ง์๋ ๋ถ๊ฐ๋ฅ)
parseInt('0xf'); // 15
parseInt('f', 16); // 15
parseInt('A0'); // NaN
parseInt('1A0'); // 1
parseInt('10 20'); // 10
- encodeURI / decodeURI
- encodeURI : ์์ ํ URI(Unifom Resource Identifier)๋ฅผ ๋ฌธ์๋ก ์ ๋ฌ๋ฐ์ ์ด์ค์ผ์ดํ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ธ์ฝ๋ฉ
- decodeURI : ์ธ์ฝ๋ฉ๋ URI๋ฅผ ์ธ์๋ก ์ ๋ฌ๋ฐ์ ์ด์ค์ผ์ดํ ์ฒ๋ฆฌ ์ด์ ์ผ๋ก ๋์ฝ๋ฉ
- encodeURI๋ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ ๋ฌธ์์ด์ ์์ ํ URI ์ ์ฒด๋ผ๊ณ ๊ฐ์ฃผํ์ฌ =, ?, &์ ์ธ์ฝ๋ฉX
// ์์ ํ URI
const uri = 'http://example.com?name=์ด๋ฆ&job=programmer&teacher';
const enc = encodeURI(uri);
console.log(enc);
// http://example.com?name=%EC%9D%B4%EB%A6%84&job=programmer&teacher
const dec = decodeURI(enc);
console.log(dec);
// http://example.com?name=์ด๋ฆ&job=programmer&teacher
- encodeURIComponent / decodeURIComponent
- encodeURIComponent : URI ๊ตฌ์ฑ ์์๋ฅผ ์ธ์๋ก ์ ๋ฌ๋ฐ์ ์ธ์ฝ๋ฉ
- decodeURIComponent : ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ URI ๊ตฌ์ฑ ์์๋ฅผ ๋์ฝ๋ฉ
- encodeURIComponent๋ ์ธ์๋ก ์ ๋ฌ๋ ๋ฌธ์์ด์ URI ๊ตฌ์ฑ์์์ธ ์ฟผ๋ฆฌ ์คํธ๋ง์ ์ผ๋ถ๋ก ๊ฐ์ฃผํด์ =, ?, &๊น์ง ์ธ์ฝ๋ฉ
const uriComp = 'name=์ด๋ฆ&jop=programmer&teacher';
let enc = encodeURIComponent(uriComp);
console.log(enc);
// name%3D%EC%9D%B4%EB%A6%84%26jop%3Dprogrammer%26teacher
let dec = decodeURIComponent(enc);
console.log(dec);
// name=์ด๋ฆ&jop=programmer&teacher
enc = encodeURI(uriComp);
console.log(enc);
// name=%EC%9D%B4%EB%A6%84&jop=programmer&teacher
dec = encodeURI(enc);
console.log(dec);
// name=์ด๋ฆ&jop=programmer&teacher
์๋ฌต์ ์ ์ญ
์ ์ธํ์ง ์์ ์๋ณ์๊ฐ ๋ง์น ์ ์ธ๋ ์ ์ญ ๋ณ์์ฒ๋ผ ๋์ํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
console.log(x); // 10
console.log(y); // ReferenceError
var x = 10; // ์ ์ญ ๋ณ์
function foo () {
// ์ ์ธํ์ง ์์ ์๋ณ์์ ๊ฐ์ ํ ๋น
y = 20; // window.y = 20;
}
foo();
// ์ ์ธํ์ง ์์ ์๋ณ์ y๋ฅผ ์ ์ญ์์ ์ฐธ์กฐํ ์ ์์
console.log(x + y); // 30
console.log(window.x); // 10
console.log(window.y); // 20
delete x; // ์ ์ญ ๋ณ์๋ ์ญ์ X
delete y; // ํ๋กํผํฐ๋ ์ญ์ O
console.log(window.x); // 10
console.log(window.y); // undefined
- foo ํจ์๊ฐ ํธ์ถ๋๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ y ๋ณ์์ ๊ฐ์ ํ ๋นํ๊ธฐ ์ํด ์ค์ฝํ ์ฒด์ธ์ ํตํด ์ ์ธ๋ ๋ณ์์ธ์ง ํ์ธ
- ์๋ฐ์คํฌ๋ฆฝํธ ์์ฆ์ y = 20์ window.y = 20์ผ๋ก ํด์ํ์ฌ ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ฅผ ๋์ ์ผ๋ก ์์ฑ
- y๋ ๋ณ์ ์ ์ธ ์์ด ๋จ์ง ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ก ์ถ๊ฐ๋์์ ๋ฟ์ด๋ผ y๋ ๋ณ์๊ฐ ์๋๋ฏ๋ก ํธ์ด์คํ ์ด ๋ฐ์X
- ํ๋กํผํฐ์ธ y๋ delete์ฐ์ฐ์๋ก ์ญ์ ๊ฐ ๊ฐ๋ฅ
[์ถ์ฒ] ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive
'JavaScript > ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ์คํ ์ปจํ ์คํธ (0) | 2022.07.27 |
---|---|
[JavaScript] this (0) | 2022.07.26 |
[JavaScript] strict mode (0) | 2022.07.24 |
[JavaScript] ํ๋กํ ํ์ (0) | 2022.07.24 |
[JavaScript] ํจ์์ ์ผ๊ธ ๊ฐ์ฒด (0) | 2022.07.22 |
- Total
- Today
- Yesterday
- Baekjoon
- ํ๋กํ ์ฝ
- ํ๋กํผํฐ
- ํฌํฌ์ธํฐ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ฐฑ์ค
- ์๊ณ ๋ฆฌ์ฆ
- ์นด์นด์ค ์ธํด
- ๋ ์์ปฌ ํ๊ฒฝ
- ์๋ฐ
- ์ ์ญ ๋ณ์
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ๋คํธ์ํฌ
- TDD
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ๋์์ธ ํจํด
- JavaScript
- git
- map
- http
- ๋ฐฑ์ค javascript
- fp
- ์ด์์ฒด์
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- ์ด๋ถํ์
- ์ฝ๋ฉํ ์คํธ
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- ๋ฐฑ์ค node.js
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |