ํฐ์คํ ๋ฆฌ ๋ทฐ
[JavaScript] ๋ฐ์ดํฐ ํ์
๊ฐ๋ฐ๊ฐ๊ตด๐ธ 2022. 7. 14. 22:58๋ฐ์ดํฐ ํ์ ์ด๋?
์(ํํ์)์ด *ํ๊ฐ๋์ด ์์ฑ๋ ๊ฒฐ๊ณผ์ธ ๊ฐ์ ์ข ๋ฅ๋ฅผ ์๋ฏธํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ ๊ฐ์ง๊ณ ์๋๋ฐ, ES6์ 7๊ฐ์ ํ์ ์ ์ ๊ณตํฉ๋๋ค.
*ํ๊ฐ : ์์ ํด์ํด์ ๊ฐ์ ์์ฑํ๊ฑฐ๋ ์ฐธ์กฐํ๋ ๊ฒ
[ES6์ 7๊ฐ์ ๋ฐ์ดํฐ ํ์ ]
๊ตฌ๋ถ | ๋ฐ์ดํฐ ํ์ | ์ค๋ช |
์์ํ์ | ์ซ์(number) ํ์ | ์ซ์. ์ ์์ ์ค์ ๊ตฌ๋ถ ์์ด ํ๋์ ์ซ์ ํ์ ๋ง ์กด์ฌ |
๋ฌธ์์ด(string) ํ์ | ๋ฌธ์์ด | |
๋ถ๋ฆฌ์ธ(boolean) ํ์ | ๋ ผ๋ฆฌ์ ์ฐธ(true)์ ๊ฑฐ์ง(false) | |
undefined ํ์ | var ํค์๋๋ก ์ ์ธ๋ ๋ณ์์ ์๋ฌต์ ์ผ๋ก ํ ๋น๋๋ ๊ฐ | |
null ํ์ | ๊ฐ์ด ์๋ค๋ ๊ฒ์ ์๋์ ์ผ๋ก ๋ช ์ํ ๋ ์ฌ์ฉํ๋ ๊ฐ | |
์ฌ๋ฒ(symbol) ํ์ | ES6์์ ์ถ๊ฐ๋ 7๋ฒ์งธ ํ์ | |
๊ฐ์ฒด ํ์ | ๊ฐ์ฒด, ํจ์, ๋ฐฐ์ด ๋ฑ |
์ซ์ ํ์
ECMAScript ์ฌ์์ ๋ฐ๋ฅด๋ฉด ์ซ์ ํ์ ์ ๊ฐ์ ๋ฐฐ์ ๋ฐ๋ 64๋นํธ ๋ถ๋์์์ ํ์์ ๋ฐ๋ผ ๋ชจ๋ ์๋ฅผ ์ค์๋ก ์ฒ๋ฆฌํฉ๋๋ค.
๋ฐ๋ผ์ ์ ์๋ก ํ์๋๋ ์๋ผ๋ฆฌ ๋๋๋๋ผ๋ ์๋์ ์์์ ๊ฐ์ด ์ค์๊ฐ ๋์ฌ ์ ์์ต๋๋ค.
console.log(1 === 1.0); // true
console.log(4/2); // 2
console.log(3/2); // 1.5
์ซ์ ํ์ ์ 3๊ฐ์ง ํน๋ณํ ๊ฐ
- Infinity : ์์ ๋ฌดํ๋
- -Infinity : ์์ ๋ฌดํ๋
- Nan : ์ฐ์ ์ฐ์ฐ ๋ถ๊ฐ(not-a-number)
console.log(10/0); // Infinity
console.log(10/-0); // -Infinity
console.log(1*'String'); // NaN
var x = nan; // ReferenceError
*์๋ฐ์คํฌ๋ฆฝํธ๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํ๋ฏ๋ก NaN์ NAN,Nan,nan ๋ฑ์ผ๋ก ํ์ํ๋ค๋ฉด ๊ฐ์ด ์๋๋ผ ์๋ณ์๋ก ํด์ํฉ๋๋ค.
๋ฌธ์์ด ํ์
๋ฌธ์์ด ํ์ ์ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉํ๋๋ฐ, 0๊ฐ ์ด์์ 16๋นํธ ์ ๋์ฝ๋ ๋ฌธ์์ ์งํฉ์ผ๋ก ์ ์ธ๊ณ ๋๋ถ๋ถ์ ๋ฌธ์๋ฅผ ํํํ ์ ์์ต๋๋ค.
๋ฌธ์์ด ํ์ ๋ฐฉ๋ฒ
ํค์๋๋ ์๋ณ์์ ๊ฐ์ *ํ ํฐ๊ณผ ๊ตฌ๋ถํ๊ธฐ ์ํด์ ๋ค๋ฅธ ํ์ ์ ๊ฐ๊ณผ ๋ฌ๋ฆฌ ๋ฐ์ดํ๋ก ๊ฐ์ธ์ ์ฌ์ฉํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฌธ์์ด์ ์์ ํ์ ์ด๋ฉฐ, ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ์ ๋๋ค. (C๋ ๋ฌธ์ ๋ฐฐ์ด๋ก, ์๋ฐ๋ ๊ฐ์ฒด๋ก ํํ)
*ํ ํฐ : ๋ฌธ๋ฒ์ ์ธ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ฉฐ, ๋ฌธ๋ฒ์ ์ผ๋ก ๋ ์ด์ ๋๋ ์ ์๋ ์ฝ๋
- ์์๋ฐ์ดํ('') : ์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ํ๊ธฐ๋ฒ
- ํฐ๋ฐ์ดํ("")
- ๋ฐฑํฑ(``) : ES6๋ถํฐ ๋์ ๋ ์๋ก์ด ๋ฌธ์์ด ํ๊ธฐ๋ฒ์ธ ํ ํ๋ฆฟ *๋ฆฌํฐ๋ด์์ ์ด์ฉ
*๋ฆฌํฐ๋ด : ์ฌ๋์ด ์ดํดํ ์ ์๋ ๋ฌธ์ ๋๋ ์ฝ์๋ ๊ธฐํธ๋ฅผ ์ฌ์ฉํด ๊ฐ์ ์์ฑํ๋ ํ๊ธฐ๋ฒ
ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด
ES6๋ถํฐ ๋ฉํฐ๋ผ์ธ ๋ฌธ์์ด, ํํ์ ์ฝ์ , ํ๊ทธ๋ ํ ํ๋ฆฟ ๋ฑ ํธ๋ฆฌํ ๋ฌธ์์ด ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์๋ก์ด ๋ฌธ์์ด ํ๊ธฐ๋ฒ์ผ๋ก ๋ฐํ์ ์ ์ผ๋ฐ ๋ฌธ์์ด๋ก ๋ณํ๋์ด ์ฒ๋ฆฌ๋ฉ๋๋ค.
๋ฉํฐ๋ผ์ธ ๋ฌธ์์ด
์ผ๋ฐ ๋ฌธ์์ด ๋ด์์๋ ํ์ฉ๋์ง ์๋ ์ค๋ฐ๊ฟ(๊ฐํ)์ ์ ๊ณตํฉ๋๋ค.
var template = `<ul>
<li><a href="#">Home</a></li>
</ul>`;
ํํ์ ์ฝ์
๋ฌธ์์ด์ ๋ฌธ์์ด ์ฐ์ฐ์ +๋ฅผ ์ฌ์ฉํด ์ฐ๊ฒฐํ ์ ์์ง๋ง, ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์์๋ ${}์ผ๋ก ํํ์์ ๊ฐ์ธ์ ์ฝ์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
var first = 'Ung-mo';
var last = 'Lee';
console.log(`My name is ${fist} ${last}.`); // My name is Ung-mo Lee.
๋ถ๋ฆฌ์ธ ํ์
๋ ผ๋ฆฌ์ ์ธ ์ฐธ, ๊ฑฐ์ง์ ๋ํ๋ด๋ true์false๋ง์ ๊ฐ์ผ๋ก ๊ฐ์ง๋๋ค. ํ๋ก๊ทธ๋จ์ ํ๋ฆ์ ์ ์ดํ๋ ์กฐ๊ฑด๋ฌธ์์ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค.
var foo = true;
console.log(foo); // true
foo = false;
console.log(foo); // false
undefined ํ์
์ ์ผํ ๊ฐ์ผ๋ก undefined๋ฅผ ๊ฐ์ง๋ฉฐ var ํค์๋๋ก ์ ์ธํ ๋ณ์๊ฐ ์๋ฌต์ ์ผ๋ก ์ด๊ธฐํ๋๋ ๊ฐ์ ๋๋ค. ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์ฌ์ฉํ๋ ๊ฐ์ผ๋ก ๊ฐ๋ฐ์๊ฐ ์๋์ ์ผ๋ก ๋ณ์์ ๊ฐ์ด ์๋ค๋ ๊ฒ์ ๋ช ์ํ ๋๋ null์ ์ฌ์ฉํด์ผํฉ๋๋ค.
var foo;
console.log(foo); // undefined
null ํ์
์ ์ผํ ๊ฐ์ผ๋ก null์ ๊ฐ์ง๋ฉฐ ๋ณ์์ ๊ฐ์ด ์๋ค๋ ๊ฒ์ ์๋์ ์ผ๋ก ๋ช ์ํ ๋ ์ฌ์ฉํฉ๋๋ค. ์ด๋ ํ ๋น๋์ด ์๋ ๊ฐ์ ๋ํ ์ฐธ์กฐ๋ฅผ ๋ช ์์ ์ผ๋ก ์ ๊ฑฐํ๋ ๊ฒ์ด๋ฏ๋ก ์ด๋ *๊ฐ๋น์ง ์ฝ๋ ์ ์ด ์ํ๋ฉ๋๋ค.
๋ํ, ํจ์๊ฐ ์ ํจํ ๊ฐ์ ๋ฐํํ ์ ์๊ฑฐ๋ HTML ์์๋ฅผ ๊ฒ์ํ ์ ์๋ ๊ฒฝ์ฐ์๋ null์ ๋ฐํํฉ๋๋ค.
*๊ฐ๋น์ง ์ฝ๋ ์ ์ ๋ํ ๋ด์ฉ์ ์๋ ํฌ์คํ ์ ์ฐธ๊ณ ํ์ธ์.
https://j-su2.tistory.com/24?category=1032243
์ฌ๋ฒ ํ์
์ฌ๋ฒ์ ES6์์ ์ถ๊ฐ๋ 7๋ฒ์งธ ํ์ ์ผ๋ก, ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ์์ ํ์ ์ ๊ฐ์ ๋๋ค.
- ๋ค๋ฅธ ๊ฐ๊ณผ ์ค๋ณต๋์ง ์๋ ์ ์ผ๋ฌด์ดํ ๊ฐ
- ์ฃผ๋ก ์ด๋ฆ์ด ์ถฉ๋ํ ์ํ์ด ์๋ ๊ฐ์ฒด์ ์ ์ผํ ํ๋กํผํฐ ํค๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉ
- Symbol ํจ์๋ฅผ ํธ์ถํด ์์ฑ
- ์ธ๋ถ์ ๋ ธ์ถ๋์ง ์์
- ๋ค๋ฅธ ๊ฐ๊ณผ ์ ๋ ์ค๋ณต๋์ง ์์
// ์ฌ๋ฒ ์์ฑ
var key = Symbol('key');
console.log(typeof key); // symbol
// ๊ฐ์ฒด ์์ฑ
var obj = {};
// ์ฌ๋ฒ์ ํ๋กํผํฐ ํค๋ก ์ฌ์ฉ
obj[key] = 'value';
console.log(obj[key]); // value
๊ฐ์ฒด ํ์
์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด๋ฃจ๊ณ ์๋ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ด ๊ฐ์ฒด์ด๋ฏ๋ก ์์ 6๊ฐ์ง ๋ฐ์ดํฐ ํ์ ์ด์ธ์ ๊ฐ์ ๋ชจ๋ ๊ฐ์ฒด ํ์ ์ ๋๋ค.
๋ฐ์ดํฐ ํ์ ์ ํ์์ฑ
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ ์ฐธ์กฐํ ์ ์์ด์ผ ํ๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ์ ์ฅํ๋ ค๋ฉด ๋จผ์ ํ๋ณดํด์ผํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํด์ผํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ ํ์ ์ ์ข ๋ฅ์ ๋ฐ๋ผ ์ ํด์ง ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณดํ์ฌ ๋ฉ๋ชจ๋ฆฌ์ ๊ณต๊ฐ์ ๋ญ๋น์ ์์ค์ ์ต์ํ ํ์ฌ ๊ฐ์ ํ ๋นํ๊ฒ ๋ฉ๋๋ค.
- ๊ฐ์ ์ ์ฅํ๊ณ ์ฐธ์กฐํ์ฌ ์ฝ์ ๋ ์ฌ์ฉํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์
- ๋ฉ๋ชจ๋ฆฌ์์ ์ฝ์ด ๋ค์ธ 2์ง์๋ฅผ ์ด๋ป๊ฒ ํด์ํ ์ง ๊ฒฐ์
var score = 100; // number
์๋ฅผ ๋ค์ด, scroe์ด๋ ๋ณ์๊ฐ number์ด๋ฏ๋ก 8byte์ ๊ณต๊ฐ์ ํ๋ณดํ๊ณ ๊ฐ์ ํด์ํ ๋ 2์ง์๋ฅผ ์ซ์๋ก ํด์ํฉ๋๋ค.
๋์ ํ์ดํ
์๋ฐ์คํฌ๋ฆฝํธ๋ *์ ์ ํ์ ์ธ์ด์ธ C๋ ์๋ฐ์ ๋ค๋ฅด๊ฒ ๋์ ํ์ ์ธ์ด๋ก ๋ถ๋ฅ๋ฉ๋๋ค.
*์ ์ ํ์ ์ธ์ด : C๋ ์๋ฐ๊ฐ์ด ๋ณ์๋ฅผ ์ ์ธํ ๋ ๋ณ์์ ํ ๋นํ ์ ์๋ ๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ ์ฌ์ ์ ์ ์ธ, ์ปดํ์ผ ์์ ์ ํ์ ์ ์ฒดํฌํจ
- ๋ณ์๋ ์ ์ธ์ด ์๋ ํ ๋น์ ์ํด ํ์ ์ด ๊ฒฐ์ ๋จ
- ๊ฐ์ ํ ๋นํ๋ ์์ ์ ๋ณ์์ ํ์ ์ด ๋์ ์ผ๋ก ๊ฒฐ์ ๋จ
- ๋ณ์์ ํ์ ์ ์ธ์ ๋ ์ง ์์ ๋กญ๊ฒ ๋ณ๊ฒฝ ๊ฐ๋ฅ
๋์ ํ์ดํ์ ์ ์ฐ์ฑ์ ๋์ง๋ง ์ ๋ขฐ์ฑ์ด ๋ฎ์ ํน์ง์ด ์์ด์ ๋ณ์๋ฅผ ์ฌ์ฉํ ๋ ๋ช๊ฐ์ง๋ฅผ ์ฃผ์ํ๋ฉฐ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- ๋ณ์์ ์ ํจ ๋ฒ์๋ฅผ ์ข๊ฒ ๋ง๋ค์ด์ ๋ถ์์ฉ์ ์ต์ ํด์ผํจ
- ๊ผญ ํ์ํ ๊ฒฝ์ฐ์ ํํด ์ ํ์ ์ผ๋ก ์ฌ์ฉ
- ๋ชฉ์ ์ด๋ ์๋ฏธ๋ฅผ ํ์ ํ ์ ์๋๋ก ๋ค์ด๋ฐํด์ผํจ
- ์ ์ญ ๋ณ์๋ ์ต๋ํ ์ฌ์ฉํ์ง ์์
- ๋ณ์๋ณด๋ค๋ ์์๋ฅผ ์ฌ์ฉํด ๊ฐ์ ๋ณ๊ฒฝ์ ์ต์
[์ถ์ฒ] ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive
'JavaScript > ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ์ ์ด๋ฌธ (0) | 2022.07.15 |
---|---|
[JavaScript] ์ฐ์ฐ์ (0) | 2022.07.15 |
[JavaScript] ๋ณ์ (0) | 2022.07.13 |
[JavaScript] ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ ํ๊ฒฝ (0) | 2022.07.12 |
[JavaScript] ์๋ฐ์คํฌ๋ฆฝํธ๋? (0) | 2022.07.11 |
- Total
- Today
- Yesterday
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- map
- ๋ฐฑ์ค javascript
- ๋ฐฑ์ค node.js
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋์์ธ ํจํด
- TDD
- ๋คํธ์ํฌ
- fp
- ์นด์นด์ค ์ธํด
- ์ด์์ฒด์
- git
- ํ๋ก๊ทธ๋๋จธ์ค
- ํฌํฌ์ธํฐ
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ์ ์ญ ๋ณ์
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- ๋ ์์ปฌ ํ๊ฒฝ
- ์๊ณ ๋ฆฌ์ฆ
- ํ๋กํผํฐ
- Baekjoon
- ์ด๋ถํ์
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- ํ๋กํ ์ฝ
- ์๋ฐ
- ๋ฐฑ์ค
- http
- ์ฝ๋ฉํ ์คํธ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- JavaScript
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |