์๋ฐ์คํฌ๋ฆฝํธ(ES6)๋ ๋ค์๊ณผ ๊ฐ์ด 7๊ฐ์ ๋ฐ์ดํฐ ํ์
์ ์ ๊ณตํ๋ค. 7๊ฐ์ ๋ฐ์ดํฐํ์
์ ์์ํ์
๊ณผ ๊ฐ์ฒดํ์
์ผ๋ก ๋ถ๋ฅํ ์ ์๋ค.
ES11์์๋ ์๋ก์ด ์์๊ฐ BigInt๊ฐ ์ถ๊ฐ๋์ด ๋ฐ์ดํฐ ํ์
์ด ์ด 8๊ฐ๊ฐ ๋์๋ค๊ณ ํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ชจ๋ ์๋ฅผ ์ค์๋ก ์ฒ๋ฆฌํ๋ฉฐ, ์ ์๋ง ํํํ๊ธฐ ์ํ ๋ฐ์ดํฐํ์ ์ด ๋ณ๋๋ก ์กด์ฌํ์ง ์๋๋ค.
์ ์, ์ค์, 2์ง์, 8์ง์, 16์ง์์ ๋ฆฌํฐ๋ด์ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐฐ์ ๋ฐ๋ 64๋นํธ ๋ถ๋์์์ ํ์์ 2์ง์๋ก ์ ์ฅ๋๋ค.
// ๋ชจ๋ ์ซ์ ํ์
์ด๋ค.
var integer = 10; // ์ ์
var double = 10.12; // ์ค์
var negative = -20; // ์์ ์ ์
์ซ์ ํ์ ์ ์ถ๊ฐ์ ์ผ๋ก ์ธ ๊ฐ์ง ํน๋ณํ ๊ฐ๋ ํํํ ์ ์๋ค.
๐ง ๋ฐฐ์ ๋ฐ๋ 64๋นํธ ๋ถ๋์์์ ํ์์ 2์ง์๋?
์ถ์ฒ : https://vanillaani.tistory.com/6
์๋ฐ์คํฌ๋ฆฝํธ์์ 0.1 + 0.2์ ๊ฒฐ๊ด๊ฐ์?
๋ต์ 0.3์ด ์๋ 0.30000000000000004์ด๋ค.
๊ทธ ์ด์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ซ์ ํ์ ์ ๊ฐ์ดย IEEE 754์ ๋ถ๋์์์ ํํ ํ์ ์คย ๋ฐฐ์ ๋ฐ๋ 64๋นํธ ๋ถ๋์์์ ํ์์ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค.C๋ ์๋ฐ์ ๊ฒฝ์ฐ, ์ ์์ ์ค์๋ฅผ ๊ตฌ๋ถํด์ int, long, float, double ๋ฑ๊ณผ ๊ฐ์ ํ์ ์ผ๋ก ์ ์์ ์ค์๋ฅผ ๊ตฌ๋ถํด์ ์ฌ์ฉํ์ง๋ง,ย ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฒฝ์ฐ ๋ชจ๋ ์๋ฅผ ์ค์๋ก ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ํ๋์ ์ซ์ ํ์ ๋ง ์กด์ฌํ๋ค.
์๋ ์๋ ์ปดํจํฐ์ ์ฑ๋ฅ์ด ์ข์ง ์์๊ธฐ ๋๋ฌธ์ ์ด๋ ๊ฒ ์ซ์์ ํ์ ์ ํฌ๊ธฐ๋ฅผ ์ง์ ํด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ํ์ ์ด ๋ถ๋ฅ๋์๋ค. ํ์ง๋ง ์ ์ ์ปดํจํฐ์ ์ฑ๋ฅ์ด ์ข์์ง๋ฉด์ ํ์ ์ ๋ํด ๋ ์ ๊ฒฝ ์ฐ๊ฒ ๋์๋ค.
๋ฐฐ์ ๋ฐ๋ 64๋นํธ ๋ถ๋์์์ ๋ถํธ๋ถ๋ถ
์๋ฐ์คํฌ๋ฆฝํธ์ ์ซ์ ํํ์ ๋ฐฐ์ ๋ฐ๋ 64๋นํธ ๋ถ๋์์์ ํ์์ ๋ฐ๋ฅธ๋ค๊ณ ํ๋ค.ย ์ฌ๊ธฐ์ ๋ถ๋์์์ ์ ๋ถ๋์ย ๋ฐ๋ถ(ๆตฎ)์ย ์์ง์ผ๋(ๅ)์ด๋ค. ์ฆ ๋ ๋์ด ์์์ (floating point)์ด๋ ๋ป์ด๋ค.
๋ถ๋์์์ ํํ์ ํฌ๊ฒ ์ธ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋๋๋ฐย ๋ถํธ ๋ถ๋ถ, ์ง์ ๋ถ๋ถ, ๊ฐ์ ๋ถ๋ถ์ด ์๋ค.
0.1(์ญ์ง๋ฒ)์ ๋ฐฐ์ ๋ฐ๋ 64๋นํธ ๋ถ๋์์์ ํ์์ผ๋ก ํํํ๋ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค.๋ถํธ๋ถ๋ถ
๋ถํธ๋ถ๋ถ์ ์์์ด๋ฉด 0, ์์์ด๋ฉด 1์ด ๋๋ค. 0.1์ ์์์ด๋ฏ๋ก ๋ถํธ๋ถ๋ถ์ 0์ด ๋๋ค.
์ง์๋ถ๋ถ
0.1(10)์ 2์ง๋ฒ์ผ๋ก ๋ฐ๊พธ๋ฉด 0.00011001100...(2)์ผ๋ก ์ํ ์์๊ฐ ๋์จ๋ค.
์์์ ์ ์๋ฆฌ๋ฅผ 1.xxx...๊ฐ ๋๋๋ก ์ผ์ชฝ ๋๋ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฎ๊ธด๋ค. 0.00011001100...(2)์์๋ ์ค๋ฅธ์ชฝ์ผ๋กย 4์นธย ์ด๋ํด์ผ 1์ด ๋์ค๊ธฐ ๋๋ฌธ์ ์์ผ๋ก ํํํ๋ฉด 1.1001100...(2)ร2^-4์ ๊ฐ๋ค. ๋ง์ฝ 1100.000110011000...(2)์ด๋ผ๋ฉด ์ผ์ชฝ์ผ๋กย 3์นธย ์ด๋ํ๊ณ ํํ์์ 1.10000011001100...(2)ร2^3์ดย ๋๋ค.์ง์๋ถ๋ถ์ ๊ตฌํ๋ ค๋ฉด 2^-4(1/2โด)์ ์ง์์ธ -4์๋ค๊ฐ Bias๋ฅผ ๋ํ๊ณ 2์ง๋ฒ์ผ๋ก ๋ณํํด์ผ ํ๋ค.
Bias๋ ์ง์ ํธํฅ์ ๋งํ๋๋ฐ, ์ด๋ฅผ ๋ํ๋ ์ด์ ๋ ์์๋ 2์ง๋ฒ์ผ๋ก ํํํ ์ ์์ง๋ง, ์์๋ ํํํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ฅผ ๋ค์ด ์ง์๋ถ๋ถ์ ์ ์ฅํ ๋ ์ง์๊ฐ์ด 1์ธ ๊ฒฝ์ฐ 2์ง๋ฒ์ผ๋ก ๋ณํํด 00000000001๋ก ์ ์ฅํ ์ ์์ง๋ง, -1์ธ ๊ฒฝ์ฐ ์ ์ฅํ ๋ฐฉ๋ฒ์ด ์๋ค. ๋ฐ๋ผ์ Bias๋ฅผ ๋ํ ๋ค์ 2์ง๋ฒ์ผ๋ก ๋ณํํ๋ ๊ฒ์ด๋ค.
Bias๋ฅผ ๊ตฌํ๋ ์์ 2^(์ง์๋ถ๋ถ์ ์ด ๋นํธ์ - 1) - 1์ด๋ค. 64๋นํธ์ ์ง์๋ถ๋ถ์ 11bit์ด๋ฏ๋ก 2^(11 - 1) - 1 = 1023์ผ๋ก Bias๋ 1023์ด ๋๋ค. ๊ทธ๋์ 0~1023์ ํด๋นํ๋ฉด ์์๊ฐ, 1024~2047์ ํด๋นํ๋ฉด ์์๊ฐ ์ ์ฅ๋๋ ๊ฒ์ด๋ค.์ด์ด์ ๊ณ์ฐํ๋ฉด -4 + 1023 = 1019์ด๋ค. ์ด ๊ฐ์ 2์ง๋ฒ์ผ๋ก ๋ณํํ๋ฉด 1111111011์ธ๋ฐ, ์ง์๋ถ๋ถ์ ์ด 11bit์ด๋ฏ๋ก ์์ 0์ ๋ถ์ฌ์ 01111111011์ด ๋ค์ด๊ฐ๊ฒ ๋๋ค.
๊ฐ์๋ถ๋ถ
๊ฐ์๋ถ๋ถ์ ์์์ ์ ์ฎ๊ธด 1.1001100...์์ ์์์ ์ ์ค๋ฅธ์ชฝ ๋ถ๋ถ์ด๋ค. ์์์ ์ผ์ชฝ ๋ถ๋ถ์ ๋ฌด์กฐ๊ฑด 1์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์ ์ฅํ์ง ์์ผ๋ฉฐ ์ด๋ฅผ hidden bit๋ผ ํ๋ค. ์ฌ๊ธฐ์ ์ค๋ฅธ์ชฝ ๋ถ๋ถ์ ๊ณ์ ์ํ๋๋ฏ๋ก 52๋นํธ์ ๋ฃ์ผ๋ฉด 52๋ฒ์งธ ์ดํ ๊ฐ์ ๋ฐ์ฌ๋ฆผ์ ํด์ผํ๋ค. ์๋ 51, 52, 53๋ฒ์งธ ๊ฐ์ 011์ธ๋ฐ 53๋ฒ์งธ์์ ๋ฐ์ฌ๋ฆผ ํ์ผ๋ฏ๋ก 51, 52๋ฒ์งธ ๊ฐ์ 10์ด ๋๋ค. ๋ง์ฝ ์์์ ์ ์ค๋ฅธ์ชฝ ๋ถ๋ถ์ด 52๊ฐ๋ณด๋ค ์๋ค๋ฉด 0์ผ๋ก ์ฑ์ ๋ฃ๋๋ค.
IEEE 754๋?
IEEE 754๋ย IEEE(Institute of Electrical and Electronics Engineers) ์ฆ ์ ๊ธฐ ์ ์ ๊ธฐ์ ์ ํํ์์ ๊ฐ๋ฐํ ๊ฒ์ผ๋ก ์ปดํจํฐ์์ ๋ถ๋์์์ ์ ํํํ๋ ๋ฐฉ๋ฒ์ ์ ์ํ ๊ฒ์ผ๋ก ๊ฐ์ฅ ๋๋ฆฌ ์ฐ์ด๋ ํ์ค์ด๋ค.
IEEE 754 ๋ถ๋์์์ ์ ํํํ๋ ํ์์ ์ข ๋ฅ์๋ย 2์ง๋ฒ ๋ถ๋์์์ ํ์๊ณผย 10์ง๋ฒ ๋ถ๋์์์ ํ์์ด ์๋ค.
โป binary = 2์ง๋ฒ, bit = binary(2์ง๋ฒ์) digit(์ซ์)์ ์ฝ์, decimal = 10์ง๋ฒ
๊ฒฐ๋ก
์๋ฐ์คํฌ๋ฆฝํธ๋ ์ซ์๋ฅผ ๋ฐฐ์ ๋ฐ๋ 64๋นํธ ๋ถ๋์์์ ํ์์ ๋ฐ๋ผ ํํํ๋ค. ์ด๊ฒ์ ์ญ์ง์์ธ ์์๋ฅผ ์ด์ง์๋ก ๋ณํํ๊ณ ์์์ ์ 1์ด ๋์ฌ ๋๊น์ง ์ค๋ฅธ์ชฝ ๋๋ ์ผ์ชฝ์ผ๋ก ์ฎ๊ธด ๋ค์, ์์์ ์ค๋ฅธ์ชฝ์ ํด๋นํ๋ ์๋ฅผ ๊ฐ์๋ถ๋ถ์ ๋ฃ๊ฒ ๋๋๋ฐ ์ด ์๊ฐ ํํ ์๋ฆฌ์๋ณด๋ค ๋์ด์๊ฒ ๋๋ฉด ๋๋จธ์ง ๋ถ๋ถ์์ ๋ฐ์ฌ๋ฆผ ์ฒ๋ฆฌ๋ฅผ ํ๋ฏ๋ก ๊ทผ์ฌ๊ฐ์ด ์ ์ฅ๋๋ฉด์ ๋ถ์ ํํ๊ฒ ๋๋ค.
๋ฐ๋ผ์ 0.1 + 0.2์ ๊ฒฐ๊ด๊ฐ์ดย 0.30000000000000004๊ฐ ๋์ค๊ฒ ๋๋ ๊ฒ์ด๋ค.์์์ ์ ๊ณ์ฐ์ ์ฌ๋ฐ๋ฅด๊ฒ ํ๋ ๋ฐฉ๋ฒ
numObj.toFixed([digits])
toFixed()๋ Number๊ฐ์ฒด์ ์ฃผ์ด์ง digits ๋งํผ์ ์์์ ์ดํ ์๋ฆฌ์๋ฅผ ์ ํํ๊ฒ ๊ฐ๋ ๋ฌธ์์ด ํํ์ผ๋ก ๋ฐํํ๋ค.
์์์ ์ดํ๊ฐ ๊ธธ๋ฉด ์ซ์๋ฅผ ๋ฐ์ฌ๋ฆผํ๊ณ , ์งง์์ ๋ถ์กฑํ ๊ฒฝ์ฐ ๋ค๋ฅผ 0์ผ๋ก ์ฑ์ด๋ค.
digits์ ์ต์ ์ 0 ์ด์ 20 ์ดํ์ ๊ฐ์ ์ฌ์ฉํ ์ ์๊ณ , ๊ตฌํ์ฒด์ ๋ฐ๋ผ ๋ ๋์ ๋ฒ์์ ๊ฐ์ ์ง์ํ ์๋ ์๋ค. ๊ฐ์ ์ง์ ํ์ง ์์ผ๋ฉด 0์ ์ฌ์ฉํ๋ค.
Math.round(x)
์ ๋ ฅ๊ฐ์ ๋ฐ์ฌ๋ฆผํ ๊ฐ๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์๋ฅผ ๋ฐํํ๋ค.
์ด๊ฒ์ ์์ฉํด 0.3์ ๋ง๋ค ์ ์๋ค.
๋ฌธ์์ด ํ์ ์ ์์ ๋ฐ์ดํ, ํฐ ๋ฐ์ดํ, ๋ฐฑํฑ์ ์ฌ์ฉํด ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉํ๋ค.
// ๋ฌธ์์ด ํ์
var string;
string = '๋ฌธ์์ด'; // ์์ ๋ฐ์ดํ
string = "๋ฌธ์์ด"; // ํฐ ๋ฐ์ดํ
string = `๋ฌธ์์ด`; // ๋ฐฑํฑ(ES6)
C๋ ๋ฌธ์์ด ํ์
์ ์ ๊ณตํ์ง ์๊ณ ๋ฌธ์์ ๋ฐฐ์ด๋ก ๋ฌธ์์ด์ ํํํ๊ณ , ์๋ฐ๋ ๋ฌธ์์ด์ ๊ฐ์ฒด๋ก ํํํ๋ค. ๊ทธ๋ฌ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฌธ์์ด์ ์์ ํ์
์ด๋ฉฐ, ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ์ด๋ค.
ES6 ๋ถํฐ ๋์ ๋ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ๋ฐฑํฑ(``)์ ์ฌ์ฉํด ํํํ๋๊ฒ์ด๋ค.
var string = `Hello
world`;
// ์ถ๋ ฅ๊ฒฐ๊ณผ
// Hello
// world
์ผ๋ฐ ๋ฌธ์์ด ๋ด์์๋ ์ค๋ฐ๊ฟ์ด ํ์ฉ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ฐฑ์ฌ๋์()๋ฅผ ์ฌ์ฉํ๋ ์ด์ค์ผ์ดํ ์ํ์ค๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ํ์ง๋ง ์ผ๋ฐ ๋ฌธ์์ด๊ณผ ๋ฌ๋ฆฌ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด ๋ด์์๋ ์ด์ค์ผ์ดํ ์ํ์ค๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ ์ค๋ฐ๊ฟ์ด ํ์ฉ๋๋ฉฐ, ๋ชจ๋ ๊ณต๋ฐฑ๋ ์๋๊ทธ๋๋ก ์ ์ฉ๋๋ค.
๋ฌธ์์ด์ ๋ฌธ์์ด ์ฐ์ฐ์ + ๋ฅผ ์ฌ์ฉํด ์ฐ๊ฒฐํ ์ ์๋ค.
var first = 'Bo-kyoung'
var last = 'Hwang'
// ES5 : ๋ฌธ์์ด ์ฐ๊ฒฐ
console.log('My name is' + first + last + '.');
ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด ๋ด์์๋ ์๋์ ๊ฐ์ด ํํ์ ์ฝ์ ์ ํตํด ๊ฐ๋จํ ๋ฌธ์์ด์ ์ฝ์ ํ ์ ์๋ค.
var first = 'Bo-kyoung'
var last = 'Hwang'
// ES6 : ํํ์ ์ฝ์
console.log(`My name is ${first} ${last}.`);
๋ถ์ธ๋ฆฌ์ธ ํ์ ์ ๊ฐ์ true์ false ๋ฟ์ด๋ค.
var foo = true;
console.log(foo);
foo = false
console.log(foo);
undefined๋ ๊ฐ๋ฐ์๊ฐ ์๋์ ์ผ๋ก ํ ๋นํ๊ธฐ ์ํ ๊ฐ์ด ์๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ๋ณ์๋ฅผ ์ด๊ธฐํ ํ ๋ ์ฌ์ฉํ๋ ๊ฐ์ด๋ค. ๋ณ์๋ฅผ ์ฐธ์กฐ ํ์๋ undefined๊ฐ ๋ฐํ๋๋ค๋ฉด ์ฐธ์กฐํ ๋ณ์๊ฐ ์ ์ธ ์ดํ ๊ฐ์ด ํ ๋น๋ ์ ์ด ์๋, ์ฆ ์ด๊ธฐํ ๋์ง ์์ ๋ณ์๋ผ๋๊ฒ์ ๊ฐํํ ์ ์๋ค.
๐ง ์ ์ธ๊ณผ ์ ์
๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋ ์ ์ธ๊ณผ ์ ์๋ฅผ ์๊ฒฉํ๊ฒ ๊ตฌ๋ถํด์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์๋ฅผ ๋ค์ด C์์๋ ์ค์ ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ํ ๋น ํ๋๊ฐ๋ก ์ ์ธ๊ณผ ์ ์๋ฅผ ์๊ฒฉํ๊ฒ ๊ตฌ๋ถํ๋ค.
๋จ์ํ ์ปดํ์ผ๋ฌ์๊ฒ ์๋ณ์์ ์กด์ฌ๋ง ์๋ฆฌ๋ ๊ฒ์ ์ ์ธ์ด๊ณ , ์ค์ ๋ก ์ปดํ์ผ๋ฌ๊ฐ ๋ณ์๋ฅผ ์์ฑํด์ ์๋ณ์์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ์ฐ๊ฒฐ๋๋ฉด ์ ์๋ก ๊ตฌ๋ถํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฒฝ์ฐ ๋ณ์๋ฅผ ์ ์ธํ๋ฉด ์๋ฌต์ ์ผ๋ก ์ ์๊ฐ ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ์ ์ธ๊ณผ ์ ์์ ๊ตฌ๋ถ์ด ๋ชจํธํ๋ค.
ECMAScript ์ฌ์์์ ๋ณ์๋ ์ ์ธํ๋ค ๋ผ๊ณ ํํํ๊ณ ํจ์๋ ์ ์ํ๋ค ๋ผ๊ณ ํํํ๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ null ์ ๋ณ์์ ๊ฐ์ด ์๋ค๋ ๊ฒ์ ์๋์ ์ผ๋ก ๋ช
์ํ ๋ ์ฌ์ฉํ๋ค.
์ฌ๋ฒ์ ES6์์ ์ถ๊ฐ๋ 7๋ฒ์งธ ํ์ ์ผ๋ก, ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ์์ ํ์ ์ ๊ฐ์ด๋ค. ์ฌ๋ฒ ๊ฐ์ ๋ค๋ฅธ๊ฐ๊ณผ ์ค๋ณต๋์ง ์๋ ์ ์ผ๋ฌด์ดํ ๊ฐ์ด๋ค. ๋ฐ๋ผ์ ์ฃผ๋ก ์ด๋ฆ์ด ์ถฉ๋ํ ์ํ์ด ์๋ ๊ฐ์ฒด์ ์ ์ผํ ํ๋กํผํฐ ํค๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
์ฌ๋ฒ ์ด์ธ์ ์์ ๊ฐ์ ๋ฆฌํฐ๋ด์ ํตํด ์์ฑํ์ง๋ง ์ฌ๋ฒ์ Symbol ํจ์๋ฅผ ํธ์ถํด ์์ฑํ๋ค. ์ด ๋ ์์ฑ๋ ์ฌ๋ฒ ๊ฐ์ ์ธ๋ถ์ ๋ ธ์ถ๋์ง ์์ผ๋ฉฐ, ๋ค๋ฅธ๊ฐ๊ณผ ์ ๋ ์ค๋ณต๋์ง ์๋ ์ ์ผ๋ฌด์ดํ ๊ฐ์ด๋ค.
// ์ฌ๋ฒ๊ฐ ์์ฑ
var key = Symbol('key');
console.log(typeof key); // symbol
// ๊ฐ์ฒด ์์ฑ
var obj = {};
// ์ด๋ฆ์ด ์ถฉ๋ํ ์ํ์ด ์๋ ์ ์ผ๋ฌด์ดํ ๊ฐ์ธ ์ฌ๋ฒ์ ํ๋กํผํฐ ํค๋ก ์ฌ์ฉํ๋ค.
obj[key] = 'value';
console.log(obj[key]); // value
์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ฐ์ฒด ๊ธฐ๋ฐ์ ์ธ์ด์ด๋ฉฐ ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด๋ฃจ๊ณ ์๋ ๋ชจ๋ ๊ฒ์ด ๊ฐ์ฒด๋ผ๋ ์๋ฏธ์ด๋ค. ์ง๊ธ๊น์ง ์ดํด๋ณธ 6๊ฐ์ง ๋ฐ์ดํฐ ํ์
์ด์ธ์ ๊ฐ์ ๋ชจ๋ ๊ฐ์ฒด ํ์
์ด๋ค.
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ ์ฐธ์กฐํ ์ ์์ด์ผ ํ๋ค. ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ์ ์ฅํ๋ ค๋ฉด ๋จผ์ ํ๋ณดํด์ผ ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํด์ผ ํ๋ค. ๋ค์ ๋งํด, ๋ช ๋ฐ์ดํธ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฌ์ฉํด์ผ ๋ญ๋น์ ์์ค ์์ด ๊ฐ์ ์ ์ฅํ ์ ์๋์ง ์์์ผ ํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ฐ์ดํฐ ํ์ , ์ฆ ๊ฐ์ ์ข ๋ฅ์ ๋ฐ๋ผ ์ ํด์ง ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณดํ๋ค. ์ฆ, ๋ณ์์ ํ ๋น๋๋ ๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ ๋ฐ๋ผ ํ๋ณดํด์ผ ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋๋ค.
๊ฐ์ ์ฐธ์กฐํ๋ ๊ฒฝ์ฐ์๋ ์๋ณ์๋ฅผ ํตํด ๊ฐ์ด ์ ์ฅ๋์ด ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ์ฐพ์๊ฐ๊ฒ ๋๋ค. ์ด ๋ ๊ฐ์ ์ฐธ์กฐํ๋ ค๋ฉด ํ๋ฒ์ ์ฝ์ด๋ค์ฌ์ผ ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ์์์ผํ๋๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ณ์์ ๋ฐ์ดํฐ ํ์ ์ ์ธ์ํ ํ ๋ฐ์ดํฐ ํ์ ์ ๋ฐ๋ฅธ ๋ฐ์ดํธํฌ๊ธฐ๋งํผ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฝ์ด๋ค์ธ๋ค.
์ฝ์ด๋ค์ธ 2์ง์๋ฅผ ๋ฌธ์์ด๋ก ์ฝ์ด์ฌ์ง, ์ซ์๋ก ์ฝ์ด์ฌ์ง, ์ด๋ ํ ๋ฐ์ดํฐํ์ ์ผ๋ก ์ฝ์ด์ฌ์ง๋ ๋ณ์์ ๋ฐ์ดํฐ ํ์ ์ ํตํด ์์ ์๋ค.
์์์ ์ธ๊ธํ ๋ฐ์ดํฐ ํ์ ์ด ํ์ํ ์ด์ ๋ฅผ ์ ๋ฆฌํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
C๋ ์๋ฐ๋ ์ ์ ํ์ ์ธ์ด๋ก ๋ณ์๋ฅผ ์ ์ธํ ๋ ๋ณ์์ ํ ๋นํ ์ ์๋ ๊ฐ์์ข ๋ฅ, ์ฆ ๋ฐ์ดํฐ ํ์ ์ ์ฌ์ ์ ์ ์ธํด์ผ ํ๋ค. ์ด๋ฅผ ๋ช ์์ ํ์ ์ ์ธ์ด๋ผ๊ณ ํ๋ค.
์ ์ ํ์ ์ธ์ด๋ ๋ณ์์ ํ์ ์ ๋ณ๊ฒฝํ ์ ์์ผ๋ฉฐ, ๋ณ์์ ์ ์ธํ ํ์ ์ ๋ง๋ ๊ฐ๋ง ํ ๋นํ ์ ์๋ค. ์ ์ ํ์ ์ธ์ด๋ ์ปดํ์ผ ์์ ์ ํ์ ์ฒดํฌ๋ฅผ ์ํํ๋ค. ๋ง์ฝ ํ์ ์ฒดํฌ๋ฅผ ํต๊ณผํ์ง ๋ชปํ๋ค๋ฉด ์๋ฌ๋ฅผ ๋ฐ์์ํค๊ณ ํ๋ก๊ทธ๋จ์ ์คํ ์์ฒด๋ฅผ ๋ง๋๋ค ์ด๋ฅผ ํตํด ํ์ ์ ์ผ๊ด์ฑ์ ๊ฐ์ ํจ์ผ๋ก์จ ๋์ฑ ์์ ์ ์ธ ์ฝ๋ ๊ตฌํ์ ํตํด ๋ฐํ์์ ๋ฐ์ํ๋ ์๋ฌ๋ฅผ ์ค์ธ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ ์ ์ ํ์ ์ธ์ด์ ๋ค๋ฅด๊ฒ ๋ณ์๋ฅผ ์ ์ธํ ๋ ํ์ ์ ์ ์ธํ์ง ์๋๋ค. var, let, const ํค์๋๋ก ๋ณ์๋ฅผ ์ ์ธํ ๋ค, typeof ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ ํ์ ์ ์กฐ์ฌํ ์ ์๋ค.
์ฆ, ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ณ์๋ ์ ์ธ์ด ์๋ ํ ๋น์ ์ํด ํ์ ์ด ๊ฒฐ์ (ํ์ ์ถ๋ก )๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌํ ๋น์ ์ํด ๋ณ์์ ํ์ ์ ์ธ์ ๋ ์ง ๋์ ์ผ๋ก ๋ณํ ์ ์๋ค. ์ด๋ฌํ ํน์ง์ ๋์ ํ์ดํ์ด๋ผ๊ณ ํ๋ค.
๋์ ํ์ ์ธ์ด์์ ๋ณ์๋ฅผ ์ฌ์ฉํ ๋ ์ฃผ์ํ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ๋ค.