String > str[0] = 'S'์ฒ๋ผ ์ด๋ฏธ ์์ฑ๋ ๋ฌธ์์ด์ ์ผ๋ถ ๋ฌธ์๋ฅผ ๋ณ๊ฒฝํด๋ ๋ฐ์๋์ง ์๋๋ค(์ด๋ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์๋๋ค). ํ๋ฒ ์์ฑ๋ ๋ฌธ์์ด์ read only๋ก์ ๋ณ๊ฒฝํ ์ ์๋ค. ์ด๊ฒ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅ(immutable)์ด๋ผ ํ๋ค. Undefined > undefined๋ ๊ฐ๋ฐ์๊ฐ ์๋์ ์ผ๋ก ํ ๋นํ ๊ฐ์ด ์๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ํด ์ด๊ธฐํ๋ ๊ฐ์ด๋ค. ๋ณ์๋ฅผ ์ฐธ์กฐํ์ ๋ undefined๊ฐ ๋ฐํ๋๋ค๋ฉด ์ฐธ์กฐํ ๋ณ์๊ฐ ์ ์ธ ์ดํ ๊ฐ์ด ํ ๋น๋ ์ ์ธ ์๋ ๋ณ์๋ผ๋ ๊ฒ์ ๊ฐ๋ฐ์๋ ๊ฐํํ ์ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ฐ๋ฐ์๊ฐ ์๋์ ์ผ๋ก undefined๋ฅผ ํ ๋นํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์์๊น? ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ๋ณ์ ์ด๊ธฐํ์ ์ฌ์ฉํ๋ ์ด ๊ฐ์ ๋ง์ฝ ๊ฐ๋ฐ์๊ฐ ๋ง์๋๋ก ํ ๋นํ๋ค๋ฉด undefined์ ๋ณธ๋์ ์ทจ์ง์ ์ด๊ธ๋ ๋ฟ๋๋ฌ ํผ๋์ ์ค ์ ์์ผ๋ฏ๋ก ๊ถ์ฅํ์ง ์๋๋ค. ๊ทธ๋ผ ๋ณ์์ ๊ฐ์ด ์๋ค๋ ๊ฒ์ ๋ช ์ํ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํ๋ฉด ์ข์๊น? ๊ทธ๋ฐ ๊ฒฝ์ฐ๋ undefined๋ฅผ ํ ๋นํ
๐ TIL >Node.js๋ฅผ ๋ฐฐ์ธ์๋ก ๋๊ธฐ/๋น๋๊ธฐ ํน์ฑ์ ๋ํด ๊ณ ๋ฏผํ๋ ํ์๊ฐ ๋์ด๋์ ์ ๋ฆฌํ๋ ์๊ฐ์ ๊ฐ์ก๋ค. ๐Event loop Event loop ๋์์๋ฆฌ JS ์ปจํผ๋ฐ์ค์์ ๋ฐํํ ๋ด์ฉ์ธ๋ฐ ์ ๋ฆฌ๊ฐ ๊ธฐ๊ฐ๋งํ๋ค.. ๊น๋จน์ผ๋ฉด ๋ ๋ฃ์ https://www.youtube.com/watch?v=8aGhZQkoFbQ MDN ๋์์ฑ ๋ชจ๋ธ๊ณผ ์ด๋ฒคํธ ๋ฃจํ https://developer.mozilla.org/ko/docs/Web/JavaScript/EventLoop Javascript๋ ์ฑ๊ธ์ค๋ ๋์ ํน์ฑ์ ๊ฐ์ง๊ณ ์๋๊ฐ? ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ฑ๊ธ์ค๋ ๋๋ก ๋์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฒคํธ ๋ฃจํ์ ๊ธฐ๋ฐํ์ฌ ๋น๋๊ธฐ ์์ ์ ์ํํ ์ ์๋ค. ์ฆ ์ด๋ฒคํธ ๋ฃจํ๋ฅผ ์ด์ฉํ์ฌ ๋น๋๊ธฐ ๋ฐฉ์์ ์ง์ํ๋ค. ์ด๋ป๊ฒ ๋น๋๊ธฐ ์์ ์ ์ํํ ์ ์์๊น? ์ฌ์ค ๋น๋๊ธฐ๋ก ์ํ๋๋ ํจ์๋ค์ ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด ์์ฒด์์ ์ ๊ณต๋๋ ๊ฒ์ด ์๋๋ค. Web API๋ ๋ธ๋ผ์ฐ์ ์์ฒด์์ ์ง์ํ๋ A
์น ๋ธ๋ผ์ฐ์ ๋? ์๋ฒ์์ ๋ฐ์์จ HTML, CSS, JS ๋ฅผ ์คํ์์ผ์ฃผ๋ ํ๋ก๊ทธ๋จ์ด๋ค. ๊ทผ๋ฐ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ์ผ๋ จ์ ๊ณผ์ ์ด์๋ค. ๋จผ์ ๋ธ๋ผ์ฐ์ ๋ C++ ์ฝ๋๋ก ์ง์ฌ์ ธ์์ผ๋ฉฐ, ๋ธ๋ผ์ฐ์ ๋ ์คํํด์ผํ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ๋ฐ๊ฒฌํ๋ฉด C++๋ก ๋ง๋ Stack์ ๋ฃ์ด๋๋ค. ์ฒ๋ฆฌ๊ฐ ์ค๋ ๊ฑธ๋ฆฌ๋ ์ฝ๋๋ฅผ ๋ง๋๋ค๋ฉด? ์๋ฒ๋ก์ ajax์์ฒญ, ์ด๋ฒคํธ๋ฆฌ์ค๋, setTimeout๊ณผ ๊ฐ์ ์ฝ๋๋ค์ ์ฒ๋ฆฌํ๊ธฐ๊น์ง ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค. (๋ฒํผ ์ด๋ฒคํธ๋ฆฌ์ค๋๋ ์ฌ์ฉ์๊ฐ ๋ฒํผ์ ๋๋ฅด๊ธฐ ์ ๊น์ง ๊ธฐ๋ค๋ฆผ...) ๊ทธ๋์ ์ด๋ ๊ฒ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ์ฝ๋๋ค์ Stack์ ์์์ ์ฒ๋ฆฌํ์ง ์๊ณ ์ ์ ๋ณด๋ฅํด๋จ๋ค๊ฐ ์๋ฃ๋๋ ์์ ์ Stack์ผ๋ก ์ฌ๋ ค๋ณด๋ธ๋ค. ์ฌ๋ ค๋ณด๋ผ ๋๋ Stack์ ์๋ฌด๊ฒ๋ ์์ด ๋น์ด์์ด์ผํ๋ฉฐ ์ฐจ๋ก๋
๋ณ์ ์ ์ธ์ ๋ณดํต const๋ก ์ฌ์ฉํ๊ณ let์ ์ฌํ ๋น์ด ํ์ํ ๊ฒฝ์ฐ ํ์ ํ์ฌ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. const๋ฅผ ์ฌ์ฉํ๋ฉด ์๋์น ์์ ์ฌํ ๋น์ ๋ฐฉ์งํ๊ธฐ์ ์ข ๋ ์์ ํ๋ค. ES6๋ฅผ ์ฌ์ฉํ๋ค๋ฉด var ํค์๋๋ ์ฌ์ฉํ์ง ์๋๋ค. ์ฌํ ๋น์ด ํ์ํ ๊ฒฝ์ฐ์ ํ์ ํด let ํค์๋๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ ๋ณ์์ ์ค์ฝํ๋ ์ต๋ํ ์ข๊ฒ ๋ง๋ ๋ค. ๋ณ๊ฒฝ์ด ๋ฐ์ํ์ง ์๊ณ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ฌ์ฉํ๋, ์ฌํ ๋น์ด ํ์ ์๋ ์์, ์์ ๊ฐ๊ณผ ๊ฐ์ฒด์๋ constํค์๋๋ฅผ ์ฌ์ฉํ๋ค. const ํค์๋๋ ์ฌํ ๋น์ ๊ธ์งํ๊ธฐ์ var, let ๋ณด๋ค ์์ ํ๋ค. ๊ฐ์ฒด๋ ์์ธ๋ก ์ฌํ ๋นํ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ฌผ๋ค. ๊ทธ๋ ๊ธฐ์ ๋ณ์๋ฅผ ์ ์ธํ ๋๋ ์ผ๋จ const ํค์๋๋ฅผ ์ฌ์ฉํ์. ๋ฐ๋์ ์ฌํ ๋น์ด ํ์ํ๋ค๋ฉด... ๊ทธ๋ let ์ผ๋ก ๋ณ๊ฒฝํด๋ ๋ฆ์ง ์๋ค.
์ค์ฝํ๋? ๋ชจ๋ ์๋ณ์(๋ณ์ ์ด๋ฆ, ํจ์ ์ด๋ฆ, ํด๋์ค ์ด๋ฆ)๋ฑ์์ ์ด ์ ์ธ๋ ์์น์ ์ํด ๋ค๋ฅธ ์ฝ๋๊ฐ ์๋ณ์ ์์ ์ ์ฐธ์กฐํ ์ ์๋ ์ ํจ ๋ฒ์๊ฐ ๊ฒฐ์ ๋๋ค ์ด๋ฆ ์ค์ฝํ๋ผ๊ณ ํ๋ค. ์ฆ, ์ค์ฝํ๋ ์๋ณ์๊ฐ ์ ํจํ ๋ฒ์์ด๋ค.