2๋ฒ์ ํ๋ก์ ํธ๋ฅผ ํ๋ ๋์ ์ ๋ง JavaScript ๊ธฐ๋ณธ ๊ฐ๋ ์ด ๋ง์ด ์ฝํ๋ค๋๊ฑธ ๋๊ผ๋ค.
ํ์ง๋ง JavaScript๋ wecode ์ฒซ ๋ฌ ๊ณผ์ ์ธ ๋ ํ๋ฆฟ+์ธ๊ฐ ๋ช๊ฐ ๋ง์ผ๋ก๋ ์ ๋ ์ ๋ฆฌํ ์ ์๋ ๋ ์์ด๋ค.
๊ทธ๋์ ๋จ์ ํ๋ฌ์ ์๊ฐ ๋์ ์ฝ์ด ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ๋ ์ฑ
์ผ๋ก JavaScript์์๋ ํนํ ์ด๋ ค์ ๋ ํด๋ก์ , this ๊ฐ๋
๋ฑ์ ๋ํด ๊ณต๋ถํ๊ธฐ๋ก ํ๋ค.
๊ทธ ์ค 1๊ฐ์ ๊ฐ์ฅ ์ค์ํ๊ณ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ JavaScript์ ๋ฐ์ดํฐ ํ์ !!!
์ฌ์ค ๋ฐ์ดํฐ ํ์ ์ ๋ํด ์ ๋ฆฌํ๊ธด ํ์ง๋ง, ์ด ์ฑ ์ ์ฝ๊ณ ๋๋ ์ ๋ฒ์ ์ ๋ฆฌํ๋ ๋ด์ฉ์ ์์ ๋น์ฐ์ ์ผ๊ฐ์ด๋๊ฑธ ์๊ฒ ๋์๋ค......
๊ทธ๋ผ ์์์ฐ!!!!!!!!
๐ท์ฝ์ด ์๋ฐ์คํฌ๋ฆฝํธ ๋ฝ๊ฐ๊ธฐ ์๋ฆฌ์ฆ๐ท
์ ๋ฒ์๋ ์ ๋ฆฌํ์ง๋ง, ํ๋ฒ ๋ ์ ๋ฆฌํ๊ณ ๋์ด๊ฐ์!
JavaScript์ ๋ฐ์ดํฐ ํ์ ์ ๊ธฐ๋ณธํ(Primitive Type)๊ณผ ์ฐธ์กฐํ(Reference Type) ๋๊ฐ์ง๋ก ๊ตฌ๋ถ๋๋ค.
์ฐธ์กฐํ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฅ Object๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค. (object ํ๋๋ฐ์ ์์ผ๋๊น!)
์ฐ๋ฆฌ๊ฐ ํํ ์๋ Array, Function๊ณผ ๊ทธ ์ธ์ Date, RegExp(์ ๊ทํํ์), Map, weakMap, Set, WeakSet์ด ๋ชจ๋ Object์ ํด๋นํ๋ค.
ย Map, Set? ย
ES6์ ์๋ก ์ถ๊ฐ๋ ์น๊ตฌ๋ค!! Map์object { }
์ ์ ์ฌํ๊ณ Set์array [ ]
์ ์ ์ฌํ๋ค.
์์ธํ๊ฑด ๋ค์์ Map,Set๋ง ๋ค์ ์ ๋ฆฌํ ์์ !
ํํ, ๋ค๋ฅธ ์ฑ ์ด๋ ์ธ๊ฐ์์๋ ๊ธฐ๋ณธํ์ ๋ฐ์ดํฐ์ ๊ฐ์ ๊ทธ๋๋ก ํ ๋นํ๊ณ , ์ฐธ์กฐํ์ ๋ฐ์ดํฐ์ ๊ฐ์ ์ฐธ์กฐํ๊ณ ์๋ ์ฃผ์๋ฅผ ํ ๋นํ๋ค๋ ์์ผ๋ก ์ค๋ช ํ๋๋ฐ ์ด ์ฑ ์์๋ ๊ธฐ๋ณธํ, ์ฐธ์กฐํ ๋ชจ๋ ๊ฐ์ด ๋ด๊ธด ์ฃผ์๊ฐ์ ํ ๋นํ๋ค๊ณ ์ค๋ช ํ๋ค.
๋ ์ ํํ๋ ๊ธฐ๋ณธํ์ ๊ฐ์ด ๋ด๊ธด ์ฃผ์๊ฐ์ ๋ฐ๋ก ํ ๋นํ๊ณ , ์ฐธ์กฐํ์ ๊ฐ์ด ๋ด๊ธด ์ฃผ์๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฌถ์์ ๊ฐ๋ฆฌํค๋ ์ฃผ์๊ฐ์ ํ ๋นํ๋ค๊ณ ์ค๋ช ํ๋ค.
์ฒ์์ ์ด๊ฒ ๋์ฒด ๋ญ๋ง์ธ๊ฐ ์ถ์๋๋ฐ.... ์ฑ ์ ๊ณต๋ถํ๊ณ ๋์ ๋ค์ ์ฝ์ด๋ณด๋ ์ ๋ง ์ด ๋ง๋๋ก์๋ค!
๊ธฐ๋ณธํ ๋ฐ์ดํฐ ํ์ ์ ๋ถ๋ณ์ฑ(Immutability)์ ๋๋ค.
๋ ๊ฒ์ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์๋ ์ฌ์ค์ด๋ค. ์? ์๋ง์ JavaScript ํํ ๋ฆฌ์ผ๊ณผ ์ฑ ์์ ์ด๋ ๊ฒ ์ค๋ช ํ๋๊น....ใ ใ ใ ใ ใ
์ ๊ณต์ ๋ถ๋ค์ ์ ๋ญ์ผ?ใ
ํ์๊ฒ ์ง๋ง, ๋น์ ๊ณต์ ์
์ฅ์์๋ ์ง์ง ์ธ๊ณ์ด ๊ทธ ์์ฒด๋คใ
ใ
๋ถ๋ณ์ฑ์ด๋ผ๋ ๋ง์ ์ ํํ ๋ฌด์จ ๋ป์ด๊ณ , ์ด์งธ์ ๊ธฐ๋ณธํ์ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ผ๊น?
์๋ํ๋ฉด, let a = 10;
์ด๋ ๊ฒ a
๋ผ๋ ๋ณ์๋ฅผ ์ ์ธํ๊ณ , 10
์ด๋ผ๋ ๊ฐ์ ํ ๋นํ๋ค๊ฐ๋
ํ์ํ๋ค๋ฉด a = 20;
์ผ๋ก ์์ ๋กญ๊ฒ ๊ฐ์ ์ฌํ ๋น ํ ์ ์๋๋ฐ? ์ด๊ฑด ๋ถ๋ณ์ฑ์ ์ด๊ธ๋๋๊ฒ ์๋๊น?
๋ผ๋ ์๊ฐ... ๋น์ ๊ณต์๋ผ๋ฉด ํ๋ฒ์ฏค์ ํด๋ณด์ จ์ง์...? ์ ๋ง ๋ฉ์ฒญ์ด์ธ๊ฑฐ ์๋์ฃ ใ ใ ?
์ด ๋ถ๋ณ์ฑ์ด๋ผ๋ ๊ฐ๋ ์ ๋ํด ์ดํดํ๋ ค๋ฉด ๋จผ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ์ ๋ํ ์ดํด๊ฐ ํ์ํ๋ค!!
์ปดํจํฐ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ 0 ๋๋ 1๋ก ๋ฐ๊ฟ์ ๊ธฐ์ตํ๋ค.
์ด๋ ์ด 0
๋๋ 1
๋ก ํํ๋๋ ํ๋์ ๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฐ์ ๋นํธ(bit) ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๊ฐ๊ฐ์ ๋นํธ๋ค์ ๊ณ ์ ํ ์๋ณ์(unique identifier)๋ฅผ ๊ฐ์ง๊ฒ ๋๋๋ฐ, ์ด ์๋ณ์๋ฅผ ํตํด ๋นํธ์ ์์น๋ฅผ ํ์ธํ ์ ์๋ค. ์ด๋ฅผ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ(memory address) ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๊ทธ๋ฐ๋ฐ, ๋นํธ ํ๋ํ๋ ๋จ์๋ก ์์น๋ฅผ ํ์ธํ๊ณ ์ฐ์ฐ์ ์ํํ๋ฉด ๋ช๋ฐฑ ๋ช์ฒ๋ฒ, ๊ทธ ์ด์์ ํ์ธํด์ผ ํ ์๋ ์๊ณ , ๊ต์ฅํ ๋นํจ์จ์ ์ด๊ณ ๊ฒ์ ์๊ฐ๋ ์ค๋ ๊ฑธ๋ฆฐ๋ค.
๊ทธ๋์ ๋นํธ๋ฅผ ํ ๋จ์๋ก ๋ฌถ์ด์ผ ํ ํ์์ฑ์ด ์๊ฒผ๋๋ฐ, ๊ทธ๋ ๋ค๊ณ ์์ฒญ๋๊ฒ ๋ง์ ๋นํธ๋ฅผ ํ๋ฒ์ ๋ฌถ์ผ๋ฉด ์๋๋ ๋น ๋ฅด๊ฒ ์ง๋ง ์ฌ์ฉํ์ง ์๋ ๋นํธ๋ค๊น์ง ํ๋ฒ์ ๋ฌถ์ฌ์๊ธฐ ๋๋ฌธ์ ๋ญ๋น๋๋ ๋นํธ๊ฐ ์๊ธด๋ค.
๊ทธ๋์ ๋์จ ๋จ์๊ฐ ๋ฐ๋ก ๋ฐ์ดํธ! (Byte) 8๊ฐ์ ๋นํธ๋ฅผ ํ๋์ ๋ฐ์ดํธ๋ก ๋ฌถ์์ผ๋ฉฐ, ๊ฐ์ฅ ์์ ์กด์ฌํ๋ ๋นํธ์ ์๋ณ์... ์ฆ, ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ์ ํตํด ๋ฐ์ดํธ์ ์์น๋ฅผ ํ์ ํ์ฌ ๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ๊ณ์ฐํ ์ ์๋ค
์ด์ ๋ํด ๊ตฌ๊ธ๋งํ๋ค๊ฐ ์ฌ๋ฏธ์๋ ์์๋ฅผ ๋ฐ๊ฒฌํ๋๋ฐ, ๋นํธ๋ฅผ 100์์ง๋ฆฌ ๋ฐ์ดํธ๋ฅผ 1,000์์ง๋ฆฌ๋ก ์นํํด์ ์๊ฐํด๋ณด๋ ๊ฒ์ด๋ค.
3,000์ ์ง๋ฆฌ ๋ฌผ๊ฑด์ ์ฌ๋๋ฐ 100์์ง๋ฆฌ 30๊ฐ๋ก ๊ณ์ฐํ๋ค๋ฉด, 100์์ง๋ฆฌ๋ฅผ ์ค๋นํด๊ฐ๋ ๊ณผ์ ๋ถํฐ 30๊ฐ๊ฐ ๋ง๋์ง ์ธ๋ ๊ณผ์ ๊น์ง...์ฐธ ๋ฒ๊ฑฐ๋กญ๊ธฐ ์ง์ด ์๋ค.
์ด ๋, 100์์ง๋ฆฌ๋ฅผ 10๊ฐ ๋จ์๋ก ๋ฏธ๋ฆฌ 1,000์๊ถ์ผ๋ก ๋ฐ๊ฟ๋๊ณ , 1,000์๊ถ 3์ฅ์ผ๋ก ๋ฌผ๊ฑด๊ฐ์ ๊ฒฐ์ ํ๋ฉด ๊ธ์ก์ด ๋ง๋์ง ๊ณ์ฐํ๋ ๊ณผ์ ์ด ํจ์ฌ ํธ๋ฆฌํด์ง ๊ฒ์ด๋ค.
๋ ๋๋ฌด ํฐ ๊ณ ์ก๊ถ์ผ๋ก ๋ฐ๊ฟ๋์ผ๋ฉด, ์๋ฅผ ๋ค์ด 5๋ง์๊ถ์ ์ค๋นํด๊ฐ๋ค๋ฉด?
๋๋จธ์ง ๊ฑฐ์ค๋ฆ๋ 47,000์์ ๊ณ์ฐํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด ์ญ์ 1,000์๊ถ 3์ฅ์ ๋นํ๋ฉด ๊ฒฐ์ ๊ณผ์ ์ด ํจ์ฌ ๋๋ฆด ์ ๋ฐ์ ์๋ค!
์ค๋์ ์ ๋์จ ์ ์ ํ์ ์ธ์ด(C, JAVA๋ฑ)์ ๊ฐ ๋ฐ์ดํฐ ํ์ ๋ณ๋ก ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ช๋ฐ์ดํธ, ๋ช๋ฐ์ดํธ์ฉ ์ง์ ํด๋์์ง๋ง, ๋น๊ต์ ์ต๊ทผ์ ๋์จ JavaScript๋ ๋ฐ์ดํฐ๋ณ ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ์์ ์๋นํ ์์ ๋กญ๋ค.
์๋ฅผ ๋ค์ด, number ํ์ ์ ๊ฒฝ์ฐ ์ ์, ์์ ๊ตฌ๋ถ์์ด 8๋ฐ์ดํธ๋ก, ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋นํ ๋ญ๋ญํ๊ฒ ์ฃผ์ด์ง๋ค.
(์๋ฐ์คํฌ๋ฆฝํธ ์ฌ๋ํด๐)
์๋ณ์(identifier)๋ ๋ญ๊ณ ๋ณ์(variable) ๋ ๋ญ๊น? ๋์ถฉ ๋๋์ ์๊ฒ ๋๋ฐ ์ค๋ช
ํ๋ผ๊ณ ํ๋ฉด ์
์ด ์๋จ์ด์ง๋ค.
๋ณ์๋ ๋ง ๊ทธ๋๋ก ๋ณํ ์ ์๋ ์์ด์ง๋ง, ์ปดํจํฐ ์ฉ์ด ์์๋ ๋ณํ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋งํ๋ค.
์ด ์ฑ
์์๋ ํ๋จ๊ณ ๋ ๋์๊ฐ์, ๋ณ์๋ฅผ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๋ฐ์ดํฐ๊ฐ ๋ด๊ธธ ์ ์๋ ๊ณต๊ฐ ์ด๋ผ๊ณ ์ค๋ช
ํ๋ค.
๊ทธ๋ฆฌ๊ณ ์๋ณ์๋ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์๋ณํ๋๋ฐ ์ฌ์ฉํ๋ ์ด๋ฆ, ์ฆ ๋ณ์๋ช ์ ๋งํ๋ค.
let solmi = 26;
solmi
๋ผ๋ ๋ณ์๋ฅผ ์ ์ธํ๊ณ , solmi
์ 26
์ด๋ผ๋ ๊ฐ์ ํ ๋นํ๋ค! ์ค์ ์ปดํจํฐ ๋ด์์๋ ์ด๋ค ์ผ์ด ์ผ์ด๋๊ฒ ๋ ๊น?
ํ๋ก๊ทธ๋๋จธ๋ ์ปดํจํฐ์๊ฒ ๋ณํ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์ด์ค~ ์ด ๋ฐ์ดํฐ์ ์๋ณ์๋ solmi๊ณ ๊ฐ์ 26์ด์ผ~
๋ผ๋ ๋ช
๋ น์ ๋ด๋ ธ๋ค.
์ปดํจํฐ๋ ์ฐ๋ฆฌ์ ๋ช ๋ น์ ์คํํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ์์ ๋น์ด์๋ ๊ณต๊ฐ์ ํ๋ณดํ๊ณ , ๊ทธ ๊ณต๊ฐ์ ์ด๋ฆ์ a๋ผ๊ณ ์ง์ ํ๋ค.
26์ด๋ผ๋ ๊ฐ์ ์ด๋ป๊ฒ ํ ๊น? a๋ผ๋ ์๋ณ์๋ฅผ ๊ฐ์ง ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ฐ : 26
์ด๋ผ๊ณ ๋ฐ๋ก ์ง์ ํ ๊ฒ ๊ฐ์ง๋ง,
์ค์ ๋ก๋ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ค์ ํ๋ณดํด์ ๊ทธ ๊ณต๊ฐ์ 26
์ ์ ์ฅํ๊ณ , 26
์ด ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ์ด๋ฆ์ด solmi
์ธ ๋ณ์์ ๊ฐ์ ์ ์ฅํ๋ค.
๋ญ์๋ฆฐ์ง ๋ชจ๋ฅด๊ฒ ์ผ๋๊น ๋ฐ๋ก ๊ทธ๋ฆผ ๊ณ ๊ณ =3
์ฑ ์์๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ์ฑ์ง์ ๋ฐ๋ผ ๋ณ์๊ฐ ์ ์ฅ๋๋ ๋ณ์ ์์ญ, ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๋ฐ์ดํฐ ์์ญ์ผ๋ก ๊ตฌ๋ถ์ง์ด์ ์ค๋ช ํ๋๋ฐ, ์ด ์ค๋ช ์ด ์ดํดํ๊ธฐ ์ฌ์์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค!
์ ์ ๋ช ์นญ์ด ์๋๋ผ ์ฝ์ด ์๋ฐ์คํฌ๋ฆฝํธ ๋ด์์๋ง ์ฌ์ฉ๋๋ ์ฉ์ด๋ผ๊ณ ํ๋ ๊ฐ๋ ๋ง ์ดํดํ๋ ์ฉ์ผ๋ก ์ดํดํด์ฃผ์ธ์!
let solmi = 26;
๋ก ๋ณ์๋ฅผ ์ ์ธํ๊ณ ๊ฐ์ ํ ๋นํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์์๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ค.
@1002
solmi
๋ก ์ง์ ํ๋ค.@5003
26
์ ์ ์ฅํ๋ค.solmi
๋ผ๋ ์๋ณ์๋ฅผ ๊ฒ์ํ๋ค. @1002
@5003
๋ฅผ @1002
์ ๊ฐ์ ์ ์ฅํ๋ค.์ด๊ฒ์ด ๋ฐ๋ก ๊ธ ๋งจ ์ฒ์์ ์ค๋ช ํ๋, ๊ธฐ๋ณธํ ๋ฐ์ดํฐ ํ์ ๋ ๊ฐ์ ์ง์ ํ ๋นํ๋๊ฒ ์๋, ๊ฐ์ด ๋ด๊ธด ์ฃผ์๊ฐ์ ํ ๋นํ๊ฒ ๋๋ค๋ ๋ด์ฉ์ด๋ค.
solmi = 27
์ด๋ ๊ฒ solmi
๋ผ๋ ๋ณ์์ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ์ฌํ ๋นํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
์์ 26์ด๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ @5003
์ ๊ฐ์ ๋ฐ๊พธ๋๊ฒ ์๋๋ผ, 27์ด๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ก ๋ง๋ค์ด์ ๋ณ๋์ ๊ณต๊ฐ @5004
์ ์ ์ฅํ๊ณ , ๋ฐ๋ ๋ฐ์ดํฐ ์์ญ์ ์ฃผ์๊ฐ์ solmi
๋ณ์์ ๊ฐ์ ์ฌํ ๋นํ๋ค.
์์์์๋ ๋ฐ์ดํฐ ์์ญ์ ๊ฐ์ ๋ฐ๋ก ์ถ๊ฐํ๋๊ฑธ๋ก ์ค๋ช ํ์ง๋ง, ์ฌ์ค์
solmi = 27
์ ํ์๋ ์ปดํจํฐ๋ ๋ฐ์ดํฐ ์์ญ์ ์ญ ํ์ธํ๋ฉด์27
์ด๋ผ๋ ๊ฐ์ด ์ ์ฅ๋์ด ์๋์ง ํ์ธํ๋ค.
์๋ฅผ๋ค์ด@5035
์ด๋ผ๋ ์์น์ ์ด๋ฏธ27
์ด๋ผ๋ ๊ฐ์ด ์ ์ฅ๋์ด ์๋ค๋ฉด?
@5035
์ ์ ์ฅ๋27
์ด๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฌ์ฉํ์ฌ,@1002
๋์ด๋ฆ:solmi ๊ฐ:@5035
๊ฐ ๋์ ๊ฒ!
์ปดํจํฐ๋ ์ ๋ณ์ ์์ญ๊ณผ ๋ฐ์ดํฐ ์์ญ์ ๊ตฌ๋ถํด์ ๊ตณ์ด ๋ฐ์ดํฐ ์์ญ์ ์ฃผ์๊ฐ์ ๋ณ์์์ญ์ ์ ์ฅํ๋ ๊ฑธ๊น?
๋ฐ์ดํฐ ๋ณํ์ ์์ ๋กญ๊ฒ ํ๊ธฐ ์ํด!
์๋ฅผ ๋ค์ด,
Hello, Nice you
๋ผ๋ ๋ฌธ์์ด์ ๋ณ์์์ญ์ ๊ฐ์ ์ง์ ์ ์ฅํ๋ค๊ณ ์๊ฐํด๋ณด์.
๊ทธ๋ฐ๋ฐ ์ด ๋ฌธ์์ด์Hello, Nice to meet you
๋ผ๊ณ ๋ฐ๊ฟ์ผ ํ๋ค๋ฉด?
์ปดํจํฐ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ 0 ๋๋ 1๋ก ๋ฐ๊ฟ์ ๊ธฐ์ตํ๊ธฐ ๋๋ฌธ์, ์ฒ์์Hello, Nice you
๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์๋ ์ด๋ฅผ 011001101110101001110101101010101... ์ด๋ฐ์์ผ๋ก ์ ์ฅํ์ ๊ฒ!
๊ทผ๋ฐ ์ค๊ฐ์to meet
์ด ๋ค์ด๊ฐ์ผ ํ๋๊น...
011001101110101001110001000111010101101010101...
์ด๋ฐ์์ผ๋ก ์ค๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค.
๊ธ๋ก ๋ณด๋ฉด ๋ณ๊ฒ ์๋๊ฒ ๊ฐ์ง๋ง, ๊ฐ ๋นํธ๋ ์์น๋ฅผ ๋ํ๋ด๋ ๊ณ ์ ํ ์๋ณ์๋ฅผ ๊ฐ๊ณ ์์ด์ ์ ๋ ๊ฒ ๋ค๋ก ๋ฏธ๋ค์ง๋ ๋ฐ์ดํฐ๋ค์ ์ฎ๊ธฐ๊ณ , ์ฎ๊ธด ์์น์ ๋ง๋ ์๋ณ์๋ฅผ ๋ค์ ์ฐ๊ฒฐํ๊ณ , ๊ธฐ์กด์ ์๋ณ์๋ ๋ค์ ์๋ก ์ถ๊ฐ๋ ๋ฐ์ดํฐ์ ์ฐ๊ฒฐํ๊ณ ....#@#$#%%^#
์ปดํจํฐ ์ฃฝ๋ ์๋ฆฌ ๋ค๋ฆฐ๋ค~!
๊ทธ๋์ ๋ณ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ๊ณต๊ฐ์ ์ ์ฅํด์, ๋ฐ์ดํฐ๋ฅผ ๋ณํํ ๋๋ ์์ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ ์์ญ์ ์ถ๊ฐํ๊ณ ๊ทธ ์ฃผ์๊ฐ๋ง ๋ณ์ ์์ญ์ ๊ฐ์ ์ฐ๊ฒฐํ๋ค.
๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ฑ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด
๋ง์ฝ ๊ฐ์ด
Hello, Nice to meet you
์ธ ๋ณ์๊ฐ 100๊ฐ ์๋ค๋ฉด!?
๋ณ์ ์์ญ์ ๊ฐ์Hello, Nice to meet you
๋ฅผ ์ง์ ์ง์ ํด๋ฒ๋ฆฌ๋ฉด, 100๊ฐ์ ๋ณ์ ๋ชจ๋์๊ฐ : Hello, Nice to meet you
๋ผ๊ณ ์ง์ ํด์ค์ผ ํ๋ค.
์๋ฅผ ๋ค์ดHello, Nice to meet you
๋ผ๋ ๋ฌธ์์ ํฌ๊ธฐ๊ฐ 10 ๋ฐ์ดํธ๋ผ๊ณ ๊ฐ์ ํ๋ฉด,100*100
ํด์ ์ด 10,000 ๋ฐ์ดํธ๊ฐ ํ์ํ๋ค....
Hello, Nice to meet you
๋ฅผ ๋ณ๋์ ๋ฐ์ดํฐ ์์ญ์ ํ๋ฒ๋ง ์ ์ฅํ๊ณ , ์ด ์ฃผ์๊ฐ์ 100๊ฐ์ ๋ณ์์ ๊ฐ์ผ๋ก ์ง์ ํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ์ด ์ฃผ์๊ฐ์ ํฌ๊ธฐ๊ฐ 2๋ฐ์ดํธ๋ผ๊ณ ๊ฐ์ ํ๋ฉด100*2+10
์ผ๋ก 210 ๋ฐ์ดํธ๋ง ํ์ํ๋ค!
์ด๋ ๊ฒ ๋ณ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ๊ณต๊ฐ์ ์ ์ฅํ๋ฉด, ์ค๋ณต๋ ๋ฐ์ดํฐ์ ๋ํ ๋ฉ๋ชจ๋ฆฌ ์ฒ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ํ ์ ์๋ค.
๋๋์ด ๋๋ง์ ๋ถ๋ณ์ฑ์ ๋ํด ์๊ธฐํด๋ณด์!
๋ณ์(variable) var
let
๊ณผ ์์(constant) const
๋ ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ ์ฌ๋ถ์ ๋ฐ๋ผ ๊ตฌ๋ถ๋๋ค.
๊ทธ๋์ ํํ ์์
const
๋ ๋ถ๋ณ๊ฐ์ด๋ผ๊ณ ์๊ฐํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ๋ ๋ํ ๊ทธ๋ฌ๊ณ ......^p^...
var
let
vs const
๋ฅผ ๊ฒฐ์ ์ง๋ ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ ์ฌ๋ถ๋, ํ๋ฒ ๋ฐ์ดํฐ ํ ๋น์ด ์ด๋ค์ง ๋ณ์ ์์ญ์ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ์ฌํ ๋นํ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ๋งํ๋ค.
let a = 10;
a = 20; // 200 OK
const b = 10;
b = 20; // ?!?! SyntaxError!
๊ฐ๋ฅ? | var | const | let |
---|---|---|---|
์ค์ฝํ | function | block | block |
์ฌ์ ์ธ | O | X | X |
์ฌํ ๋น | O | X | O |
ํธ์ด์คํ | O (function-scope ๋จ์) | O (block-scope ๋จ์) | O (block-scope ๋จ์) |
๋ถ๋ณ๊ฐ์ ํ๋จํ ๋์ ๋ถ๋ณ์ฑ ์ฌ๋ถ๋ ๋ฐ์ดํฐ ์์ญ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋งํ๋ค.
๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ณธํ ๋ฐ์ดํฐ ํ์
(number, string, undefined, null, Symbol)์ ๋ชจ๋ ๋ถ๋ณ๊ฐ์ด๋ค.
๋ญ๊ฐ ๊ฐ์ด ์ค์ง ์๋๊ฐ!?
let a = 10;
let b = a;
a = a + 5;
์์๋๋ก ๋ณด์๋ฉด, a ๋ผ๋ ๋ณ์์ ์ซ์ 10์ ํ ๋นํ๋ค.
์ปดํจํฐ๋ ๋ฐ์ดํฐ ์์ญ์ ์ญ ํ์ธํ๊ณ , 10์ด๋ผ๋ ์ซ์๊ฐ ์๋ค๋ฉด ์๋ก์ด ๊ณต๊ฐ์ 10์ ์ ์ฅํ๊ณ , ๊ทธ ์ฃผ์๊ฐ์ a ๋ผ๋ ๋ณ์์ ๊ฐ์ ํ ๋นํ๋ค.
๊ทธ ํ, b ๋ผ๋ ๋ณ์์ a ๋ณ์์ ๊ฐ์ ํ ๋นํ๋ค. ์ฆ, a ๋ณ์์ ๊ฐ์ธ 10์ ์ฃผ์๊ฐ์ ํ ๋นํ๋ค.
๋ง์ง๋ง์ a์ ๊ฐ์ a + 5๋ก ๋ณ๊ฒฝํ๋ค.
console.log(a); // 15
console.log(b); // 10
์ ๊ธฐํ์ง ์์๊ฐ?!?
๋ถ๋ช
ํ a = a + 5
๋ก a์ ๊ฐ์ ๋ฐ๊ฟจ๊ธฐ ๋๋ฌธ์, a ์์ฒด๊ฐ 15๋ก ๋ณ๊ฒฝ๋๊ณ , ๊ทธ๋ก ์ธํด b์ ๊ฐ๊น์ง ๋ฐ๋ ๊ฒ ๊ฐ์๋ฐ!!!
๊ธ๋ก๋ง ๋ณด๋ฉด ๋ญ๊ฐ ??? ์ค๋ฝ์ง๋ง.... ๊ทธ๋ฆผ์ผ๋ก ๋ณด๋ฉด ๋ฐ๋ก ์ดํด ๊ฐ๋ค!
์ฒ์์ 10์ด๋ผ๋ ๋ฐ์ดํฐ์ ํด๋นํ๋ @5003
์ฃผ์๋ฅผ @1002
์ @1003
์ ๋๊ฐ์ด ํ ๋นํ๋ค!
๊ทธ ํ a = a + 5
๋ก a ๋ณ์์ ๊ฐ์ ๋ณ๊ฒฝํ๋ค.
์ปดํจํฐ๋ ์ฐ์ฐ ํ์ ๊ฒฐ๊ณผ์ธ 15๋ฅผ ๋ฐ์ดํฐ ์์ญ์์ ์ฐพ๋๋ค. ๊ทธ๋ฆฌ๊ณ 15๋ผ๋ ์ซ์๊ฐ ์๊ธฐ ๋๋ฌธ์, ์๋ก์ด ๊ณต๊ฐ์ 15์ ์ ์ฅํ๊ณ ๊ทธ ์ฃผ์๊ฐ@5004
๋ฅผ a๋ผ๋ ๋ณ์์ ๊ฐ์ ์ฌํ ๋นํ๋ค.
์ฆ, 10(@5003
) ๊ณผ 15(@5004
) ๋ ์์ ํ ๋ณ๊ฐ์ ๋ฐ์ดํฐ์ด๋ค.
๊ธฐ์กด์ ์ ์ฅ๋ 10 ์์ฒด๋ฅผ 15๋ก ๋ฐ๊พธ๋๊ฒ ์๋๋ผ, 15๋ฅผ ์ฐพ์์ ์์ผ๋ฉด ์ฌํ์ฉํ๊ณ ์์ผ๋ฉด ์๋ก ๋ง๋ ๋ค.
๋ง์น ๊ฐ์ด ๋ณ๊ฒฝ๋๋๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง, ํ๋ฒ ๋ง๋ ๊ฐ์ ๊ฐ๋น์ง ์ปฌ๋ ํ ์ ๋นํ์ง ์๋ ํ ์์ํ! ์ ๋๋ก! ๋ฐ๋์ง ์๋๋ค.
์ด๊ฒ์ด ๋ถ๋ณ๊ฐ์ด๋ฉฐ, ๊ธฐ๋ณธํ ๋ฐ์ดํฐ ํ์ ์ ๋ชจ๋ ๋ถ๋ณ๊ฐ์ด๋ค.
ํ๋ฒ ๋ง๋ ๊ฐ์ ๊ฐ๋น์ง ์ปฌ๋ ํ ์ ๋นํ์ง ์๋ ํ ์์ํ! ์ ๋๋ก! ๋ฐ๋์ง ์๋๋ค.
๊ทธ๋์ ๊ทธ๊ฒ ๋ญ์ฃ ....?
JavaScript๋ ๊ฐ์ ์ ์ธํ ๋ ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ณ ์ธ๋ชจ ์์ด์ก์ ๋ ์๋์ผ๋ก ํด์ ํ๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋ฉ๋ชจ๋ฆฌ๋ ์ผ์ ํ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ง๋๋ฐ,
์ด๋ค. ์ด ์ค 1๋ฒ๊ณผ 3๋ฒ์ ๊ฒฝ์ฐ, C์ธ์ด ๋ฑ์์๋ ๋ช ์์ ์ผ๋ก ์ง์ ํด์ค์ผ ํ์ง๋ง, JavaScript ๋ฑ์์๋ ์๋ฌต์ ์ผ๋ก ์๋ํ๋ค.
ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ ์ด์ ํ์์๋ค๋ ์ฌ์ค์, JavaScript๋ ์ด๋ป๊ฒ ์๋๊ฑธ๊น?
๋ฐ๋ก ๊ฐ๋น์ง ์ปฌ๋ ์
(GC) ๋ผ๋ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ ์ ์ ์๋ค!!
๊ฐ๋น์ง ์ปฌ๋ ์
์ด๋, ๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ค์ด ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ถ์ ํ๊ณ , ๋์ด์ ํ์ํ์ง ์์์ ํ๋จํด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ๋ ํ๋ก์ธ์ค๋ฅผ ๋งํ๋ค.
ํ์ ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ปดํจํฐ๊ฐ ๋ฉ๋๋ก ์ ํ๊ณ ๋ฉ๋๋ก ํด์ ํ๋ค๋? ์ฐ๋ฆฌ ํ๋ก๊ทธ๋จ ๋งํ๋ ์๋ฆฌ ๋ค๋ฆฐ๋ค~~~
๊ฑฑ์ NONO! ํ๋ก๊ทธ๋จ์ด ๋งํ์ง ์๋๋ก, ๊ฐ๋น์ง ์ปฌ๋ ์
์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๊ฑฐํ๋ ์ผ์ ํ ์๊ณ ๋ฆฌ์ฆ์ ์ ํด๋๋๋ฐ, ์ด ์๊ณ ๋ฆฌ์ฆ์ ํต์ฌ ๊ฐ๋
์ด ๋ฐ๋ก ์ฐธ์กฐ์ด๋ค.
์ฐธ๊ณ ๋ก, ๊ธฐ๋ณธํ์ด๋ ์ฐธ์กฐํ์ด๋ ๋ชจ๋ ๋ฐ์ดํฐ ํ์ ์, ๋ฐ์ดํฐ ์์ญ์ ์ด๋ ํ ์ฃผ์๊ฐ์ ์ฐธ์กฐํ๋ค.
๋๋ RG?? ๋งจ ์ฒ์ ์ฌ์ฉํ๋ ์์๋ฅผ ๋ค์ ๋ณด์!
solmi
๋ผ๋ ๋ณ์์ ๊ฐ์ผ๋ก @5003
์ ํ ๋นํ๋ค.
์ด๋ ๊ฒ, solmi
๋ผ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํตํด @5003
๋ผ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ ์๋ค๋ฉด, @5003
์ solmi
๋ผ๋ ๋ณ์์ ์ฐธ์กฐ๋๋ค๊ณ ํ ์ ์๋ค.
solmi
๋ผ๋ ๋ณ์์ ๊ฐ์, @5004
์ ํ ๋นํ๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก @5004
์ solmi
๋ผ๋ ๋ณ์์ ์ฐธ์กฐ๋๋ค.
๊ทธ๋ ๋ค๋ฉด, @5003
์ ์ด๋ป๊ฒ ๋ ๊น? solmi
๋ผ๋ ๋ณ์๋ ๋์ด์ @5003
์ ์ ๊ทผํ ์ ์๋ค.
@5003
์ solmi
์ ์ฐธ์กฐ๋์ง ์๋๋ค.
@5003
์ด ๋ค๋ฅธ ์ด๋ค ๋ฉ๋ชจ๋ฆฌ์๋ ์ฐธ์กฐ๋์ง ์์ผ๋ฉด?
์ด๋ค ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ๋ ์ฐธ์กฐํ์ง ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ๋น์ง๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, ์ด๋ฐ ๊ฐ๋น์ง๋ค์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ์ผ์ ์ฃผ๊ธฐ๋ง๋ค ์์งํ๊ณ , ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ๋ค.
๋ถ๋ณ๊ฐ์ OK, ๊ทธ๋ ๋ค๋ฉด ๊ฐ๋ณ๊ฐ์ ๋ญ๊น?
๊ธฐ๋ณธํ ๋ฐ์ดํฐ ํ์ ์ ๋ชจ๋ ๋ถ๋ณ๊ฐ์ด๋๊น.... ์๋์ ์ผ๋ก ์ฐธ์กฐํ ๋ฐ์ดํฐ ํ์ ์ ๊ฐ๋ณ๊ฐ์ด ๋๋ค.
๊ธฐ๋ณธํ์ ๋ฌด์กฐ๊ฑด ๋ถ๋ณ๊ฐ์ด๋ค! ์ .๋.๋ถ.๋ณ.ํด!
ํ์ง๋ง ์ฐธ์กฐํ์ ๋ฌด์กฐ๊ฑด ๊ฐ๋ณ๊ฐ์ด์ง ์๋ค. ์ค์ ์ ๋ฐ๋ผ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ๊ณ ์๊ณ , ํ์์ ๋ฐ๋ผ ๋ถ๋ณ๊ฐ์ผ๋ก ๋ง๋ค ์๋ ์๋ค.
์ฐธ์กฐํ ๋ฐ์ดํฐ ํ์
, ์ฆ Object
๋ฅผ ํ๋ ๋ง๋ค์ด๋ณด์!
let obj = {
name: "solmi",
age: 26
};
์ปดํจํฐ์์๋ ์ด๋ค ์ผ์ด ์ผ์ด๋ ๊น?
์ฐธ์กฐํ ๋ฐ์ดํฐ ํ์ ์ ๋ณ์์ ํ ๋นํ๋ฉด, ๋ค์๊ณผ ๊ฐ์ ์์๋ก ์ฒ๋ฆฌ๋๋ค.
@1002
์ ํ๋ณดํ๊ณ , ์๋ณ์์ ์ด๋ฆ์ obj
๋ผ๊ณ ์ง์ ํ๋ค.@5003
์ ํ๋ณดํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.๊ฐ์ฒด @1002 ์ ๋ณ์ ์์ญ
์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.)๊ฐ์ฒด @5003 ์ ๋ณ์ ์์ญ
์ ์ฃผ์์ธ, @7001 ~ ?
์ @5003
์ ์ ์ฅํ๋ค.๊ฐ์ฒด @5003 ์ ๋ณ์ ์์ญ
์ ๊ฐ๊ฐ name (@7001
) age (@7002
) ๋ผ๋ ํ๋กํผํฐ ์ด๋ฆ์ ์ง์ ํ๋ค. @5004
์ ์ ์ฅํ๊ณ , ์ด ์ฃผ์๋ฅผ @7001
์ ์ ์ฅํ๋ค.@5005
์ ์ ์ฅํ๊ณ , ์ด ์ฃผ์๋ฅผ @7002
์ ์ ์ฅํ๋ค.๊ธฐ๋ณธํ ๋ฐ์ดํฐ ํ์ ๊ณผ์ ์ฐจ์ด๋, ๊ฐ์ฒด์ ๋ณ์(ํ๋กํผํฐ) ์์ญ์ด ๋ณ๋๋ก ์กด์ฌํ๋ค๋ ์ !!
name : 'solmi'
๋ string ํ์
โ ๊ธฐ๋ณธํ ๋ฐ์ดํฐ ํ์
โ ๋ถ๋ณ๊ฐ์ด๋ค.
age: 26
๋ number ํ์
์ผ๋ก ๋์ผํ๋ค. ๋ฐ๋ผ์ ์ด ๊ฐ๋ค์ ๋ชจ๋ ๋ฐ์ดํฐ ์์ญ์ ์ ์ฅ๋์๋ค.
๊ฐ์ฒด @5003 ์ ๋ณ์ ์์ญ
์ ์ด๋ฌํ ํ๋กํผํฐ๋ก ์ด๋ฃจ์ด์ง ์ฌ๋ฌ๊ฐ์ ๋ฐ์ดํฐ ๊ทธ๋ฃน์ด ์ ์ฅ๋๋ ๊ฒ์ด๋ค.
let obj = {
name: "solmi",
age: 26
};
obj.age = 27;
obj
์ age
๋ผ๋ ํ๋กํผํฐ์ 27์ด๋ผ๋ ๊ฐ์ ์ฌํ ๋นํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
27์ด๋ผ๋ ๊ฐ์ด ๋ฐ์ดํฐ ์์ญ์ ์์ผ๋ฏ๋ก, ์๋กญ๊ฒ ๋ง๋ค๊ณ ๊ทธ ์ฃผ์@5006
๋ฅผ @7002
์ ๊ฐ์ผ๋ก ๋ฐ๊พผ๋ค.
ํ์ง๋ง, obj ๊ฐ ๋ฐ๋ผ๋ณด๊ณ ์๋ ์ฃผ์๋ @5003
์ผ๋ก ๋ณํ์ง ์์๋ค.
์ฆ, ์๋ก์ด ๊ฐ์ฒด๊ฐ ๋ง๋ค์ด์ง ๊ฒ์ด ์๋๋ผ ๊ธฐ์กด ๊ฐ์ฒด์ ๋ด๋ถ ๊ฐ๋ง ๋ฐ๋ ๊ฒ!!!!
์ฐธ๊ณ ๋ก ์ฌ๊ธฐ์
@5005
๋ ๋์ด์ ์ฐธ์กฐ๋์ง ์์ผ๋ฏ๋ก ๊ฐ๋น์ง ์ปฌ๋ ํฐ์ ์๊ฑฐ ๋์์ด ๋๋ค.
์ค์ฒฉ ๊ฐ์ฒด(nested object)๋, ์ฐธ์กฐํ ๋ฐ์ดํฐ์ ํ๋กํผํฐ์ ๋ค์ ์ฐธ์กฐํ ๋ฐ์ดํฐ๋ฅผ ํ ๋นํ๋ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค.
let obj2 = {
name: 'solmi',
like: [ game, chicken, alcohol ]
};
์ด๋ค ์ผ์ด ์ผ์ด๋ ๊น?!
์์์ ์คํ๋ฌ๋ค๋ฆฌใ ใ
๋ฐฐ์ด @5006 ์ ๋ณ์ ์์ญ
์ด ์๋๋ผ๋ฐฐ์ด @5005 ์ ๋ณ์ ์์ญ
์ด๋ค!
ํ....๋ญ๊ฐ ๋ณต์กํ๋ฐ @_@
๊ทธ๋๋, ๊ฐ์ ์๊น๋ผ๋ฆฌ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ณด๋ฉด ์ดํดํ๊ธฐ ์ฝ๋ค!
์ค์ํ ์ ์, like ๋ผ๋ ๋ฐฐ์ด ๋ํ ์ฐธ์กฐํ ๋ฐ์ดํฐ ํ์ ์ด๋ฏ๋ก ๊ฐ ํ๋กํผํฐ๋ค์ ์ ์ฅํ๊ธฐ ์ํ ๋ณ๋์ ๋ณ์ ์์ญ์ ๊ฐ์ง๋ค.
๊ทธ๋ฆผ์์๋ ๋ฐฐ์ด @5005์ ๋ณ์ ์์ญ
์ด๋ผ๊ณ ํํํ์ง๋ง, ๋ฐฐ์ด๋ ์ฌ์ค์ ๊ฐ์ฒด๋ผ๋ ์ ์ ์์ผ๋ฉด ์๋๋ค.
(๊ฐ์ฒด๋ ๋ฐฐ์ด์ ๋ฐ๋ก ๋๊ณ ์๊ฐ๋๋ฉด ๋์ค์ ๊ฒ๋ ํท๊ฐ๋ฆผ - ๊ฒฝํ๋ด)
๋ฐฐ์ด๋ ๊ฐ์ฒด?
๋ฐฐ์ด์ key๊ฐ์ด ์ซ์์ด๋ฉด์, 0๋ถํฐ ์์ํด์ 1..2..3... ์ผ๋ก ์์ฐจ์ ์ผ๋ก ๋์ด๋๋ ๊ฐ์ฒด๋น!
๊ธฐ๋ณธํ ๋ฐ์ดํฐ ํ์ ๊ณผ ์ฐธ์กฐํ ๋ฐ์ดํฐ ํ์ ์ ๊ฐ์ฅ ํฐ ์ฐจ์ด๋ ๋ณ์๋ฅผ ๋ณต์ฌํ ๋ ๋ฐ์ํ๋๋ฐ,
๋ณ์ ๋ณต์ฌ์ ์ฐธ์กฐํ ๋ฐ์ดํฐ ํ์ ์ ๋ถ๋ณ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ๋ฑ์ ๋ค์ ๊ธ์ ๊ณ์...!
์ถ์ฒ : ์ฝ์ด ์๋ฐ์คํฌ๋ฆฝํธ [์ ์ฌ๋จ]
๊ฐ๋ฐ ์์ด๋ณด ์ฝ๋ฆฐ์ด์
๋๋ค!
์ด ๋ด์ฉ์ ๊ฐ์ข
๊ฐ์&๊ตฌ๊ธ๋ง์ ํตํด ๋ฐฐ์ด ๋ด์ฉ์ ์ ๋ฆฌํ๋ ๊ฒ์ผ๋ก, ์ ๊ฐ ์ดํดํ๊ณ ๋์ด๊ฐ ๊ฐ๋
์ด ํ๋ ธ๊ฑฐ๋ ๋ ๋ณด์ถฉํ ๊ฐ๋
์ด ์๋ค๋ฉด ๋๊ธ ๋จ๊ฒจ์ฃผ์๋ฉด ์ ๋ง ๊ฐ์ฌํ๊ฒ ์ต๋๋ค!!
์.... ์ ๋ฆฌ๋ง์ง์ด๋ผ๋ ์๋ฌธ ๋ฃ๊ณ ์ฐพ์์์ต๋๋ค. ์ง์ง ๋๋ฐ์ด๋ค์ฌใ
ใ
ใ
์ดํด๊ฐ ์์ ์ ๋ผ์!!! ์ฑ
๊ณผ ๋ณํํด์ ์๋ฏธ๋ ํฌ์คํ
์ฝ์ด์ผ๊ฒ ์ด์!!
์ ๋ฆฌ ๋ฐ ์ค๋ช ์ด ์ ๋ง ์ฝ๊ธฐ๋ ์ฝ๊ณ ์ดํดํ๊ธฐ๋ ์ฝ๊ฒ ์ ์ด์ฃผ์ ์ ์ ์ฝ๊ณ ๊ฐ์ !!
์๋ ํ์ธ์! ๊ธ ์ ์ฝ์์ต๋๋ค~
ํ๋ ๊ถ๊ธํ๊ฒ ์์ด์ ๋๊ธ ๋จ๊ฒจ์!
์์๋๋ก ๋ณด์๋ฉด, a ๋ผ๋ ๋ณ์์ ์ซ์ 10์ ํ ๋นํ๋ค.
์ปดํจํฐ๋ ๋ฐ์ดํฐ ์์ญ์ ์ญ ํ์ธํ๊ณ , 10์ด๋ผ๋ ์ซ์๊ฐ ์๋ค๋ฉด ์๋ก์ด ๊ณต๊ฐ์ 10์ ์ ์ฅํ๊ณ , ๊ทธ ์ฃผ์๊ฐ์ a ๋ผ๋ ๋ณ์์ ๊ฐ์ ํ ๋นํ๋ค.
๊ทธ ํ, b ๋ผ๋ ๋ณ์์ a ๋ณ์์ ๊ฐ์ ํ ๋นํ๋ค. ์ฆ, a ๋ณ์์ ๊ฐ์ธ 10์ ์ฃผ์๊ฐ์ ํ ๋นํ๋ค.
๋ง์ง๋ง์ a์ ๊ฐ์ a + 5๋ก ๋ณ๊ฒฝํ๋ค.
console.log(a); // 15
console.log(b); // 10
์ ๊ธฐํ์ง ์์๊ฐ?!?
๋ถ๋ช ํ a = a + 5 ๋ก a์ ๊ฐ์ ๋ฐ๊ฟจ๊ธฐ ๋๋ฌธ์, a ์์ฒด๊ฐ 15๋ก ๋ณ๊ฒฝ๋๊ณ , ๊ทธ๋ก ์ธํด b์ ๊ฐ๊น์ง ๋ฐ๋ ๊ฒ ๊ฐ์๋ฐ!!!
๊ธ๋ก๋ง ๋ณด๋ฉด ๋ญ๊ฐ ??? ์ค๋ฝ์ง๋ง.... ๊ทธ๋ฆผ์ผ๋ก ๋ณด๋ฉด ๋ฐ๋ก ์ดํด ๊ฐ๋ค!
๋ผ๊ณ ๊ธ์ ์ ์ด์ฃผ์ จ๋๋ฐ
์ปดํจํฐ๋ ๋ฐ์ดํฐ ์์ญ์ ์ญ ํ์ธํ๊ณ , 10์ด๋ผ๋ ์ซ์๊ฐ ์๋ค๋ฉด ์๋ก์ด ๊ณต๊ฐ์ 10์ ์ ์ฅํ๊ณ , ๊ทธ ์ฃผ์๊ฐ์ a ๋ผ๋ ๋ณ์์ ๊ฐ์ ํ ๋นํ๋ค.
์ด ๋ด์ฉ์ ๋ํ ์ถ์ฒ๋ฅผ ํน์ ์ ์ ์์๊น์? ๊ณต์ ๋ฌธ์์ธ๊ฐ์? ใ ใ
์ ์ ๋ฆฌ ๋๋ฐ์ด๋ค์ ์๋ฏธ๋ ํํธ ๊ธฐ๋ํ๊ฒ ์ต๋๋ค (์ !)