JavaScript
JavaScript (JS)๋ ๊ฐ๋ฒผ์ด, ์ธํฐํ๋ฆฌํฐ ํน์ just-in-time ์ปดํ์ผ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก, ์ผ๊ธ ํจ์๋ฅผ ์ง์ํฉ๋๋ค. ์น ํ์ด์ง๋ฅผ ์ํ ์คํฌ๋ฆฝํธ ์ธ์ด๋ก ์ ์๋ ค์ ธ ์์ง๋ง, Node.js, Apache CouchDB, Adobe Acrobat์ฒ๋ผ ๋ง์ ๋น ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์๋ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. JavaScript๋ ํ๋กํ ํ์ ๊ธฐ๋ฐ, ๋ค์ค ํจ๋ฌ๋ค์, ๋จ์ผ ์ค๋ ๋, ๋์ ์ธ์ด๋ก, ๊ฐ์ฒด์งํฅํ, ๋ช ๋ นํ, ์ ์ธํ(ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๋ฑ) ์คํ์ผ์ ์ง์ํฉ๋๋ค.
JavaScript์ ๋์ ๊ธฐ๋ฅ์๋ ๋ฐํ์ ๊ฐ์ฒด ๊ตฌ์ฑ, ๋ณ์ ๋งค๊ฐ๋ณ์ ๋ชฉ๋ก, ํจ์ ๋ณ์, (eval์ ํตํ) ๋์ ์คํฌ๋ฆฝํธ ์์ฑ, (for...in ๋ฐ Object ์ ํธ๋ฆฌํฐ๋ฅผ ํตํ) ๊ฐ์ฒด ๊ฒ์ฌ ๊ทธ๋ฆฌ๊ณ ์์ค ์ฝ๋ ๋ณต๊ตฌ(JavaScript ํจ์๋ ์์ค ํ
์คํธ๋ฅผ ์ ์ฅํ๊ณ toString()์ ํตํด ๋ค์ ์ฐพ์ ์ ์์ต๋๋ค.)๊ฐ ์์ต๋๋ค.
์ด ์น์ ์ JavaScript ์ธ์ด ์์ฒด๋ฅผ ๋ค๋ฃจ๋ฉฐ ์น ํ์ด์ง ๋๋ ๋ค๋ฅธ ์ฌ์ฉ ํ๊ฒฝ์ ๋ํด ๋ค๋ฃจ์ง ์์ต๋๋ค. ์น ํ์ด์ง์ ํน์ API์ ๋ํ ์ ๋ณด๋ฅผ ์๊ณ ์ถ๋ค๋ฉด, ์น API์ DOM์ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
JavaScript์ ํ์ค์ ECMAScript ์ธ์ด ์ฌ์ (ECMA-262)๊ณผ ECMAScript ๊ตญ์ ํ API ์ฌ์ (ECMA-402)์ ๋๋ค. ์ ํฌ๋ ํ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ค ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ์ฆ์ ์ด๋ฅผ ๋ฌธ์ํํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ์ด๋ ์๋ก์ด ECMAScript ๊ธฐ๋ฅ์ ๋ํ ์ผ๋ถ ์ ์์ด ๋ธ๋ผ์ฐ์ ์์ ๊ตฌํ๋ ๊ฒฝ์ฐ, MDN์ ๋ฌธ์์ ์์ ๊ฐ ์ด ์๋ก์ด ๊ธฐ๋ฅ ์ค ์ผ๋ถ๋ฅผ ์ฌ์ฉํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ๋๋ถ๋ถ 3, 4๋จ๊ณ ์ฌ์ด์์ ์ด๋ฃจ์ด์ง๋ฉฐ, ์ด๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์์ด ๊ณต์์ ์ผ๋ก ๊ฒ์๋๊ธฐ ์ ์ ๋๋ค.
JavaScript์ Java ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ํผ๋ํด์๋ ์ ๋ฉ๋๋ค. JavaScript๋ "์ธํฐํ๋ฆฌํธ Java"๊ฐ ์๋๋๋ค. "Java"์ "JavaScript" ๋ ๋ชจ๋ ์ํ์ด์ ๋ฏธ๊ตญ ๋ฐ ๊ธฐํ ๊ตญ๊ฐ์ ๋ฑ๋ก๋ Oracle์ ์ํ์ด์ง๋ง, ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ตฌ๋ฌธ, ์๋ฏธ ๋ฐ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋งค์ฐ ๋ค๋ฆ ๋๋ค.
ํต์ฌ ์ธ์ด ๊ธฐ๋ฅ(๋๋ถ๋ถ ์์ํ ECMAScript)์ ๋ํ JavaScript ๋ฌธ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
JavaScript ์ฌ์๊ณผ ๊ด๋ จ ๊ธฐ์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ JavaScript ๊ธฐ์ ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
ํ๋ก ํธ ์๋ ์น ๊ฐ๋ฐ์๊ฐ ๋๊ณ ์ถ์ผ์ ๊ฐ์?
๋ชฉํ ๋ฌ์ฑ์ ํ์ํ ๋ชจ๋ ํ์ ์ ๋ณด๊ฐ ํฌํจ๋ ๊ณผ์ ์ ๋ง๋ จํ์ต๋๋ค.
์์ต์
๊ฐ์ด๋ ๋ฐ ์์ต์๋ฅผ ํตํด JavaScript๋ก ํ๋ก๊ทธ๋๋ฐํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋ณด์ธ์.
์ ๋ฌธ์์ฉ
JavaScript๋ฅผ ๋ฐฐ์ฐ๊ณ ์ถ์ง๋ง JavaScript์ด๋ ํ๋ก๊ทธ๋๋ฐ์ ๋ํ ์ด์ ๊ฒฝํ์ด ์๋ ๊ฒฝ์ฐ JavaScript ์ฃผ์ ์ ๋ํ ํ์ต ์์ญ์ ๋ฐฉ๋ฌธํ์ธ์. ์ ์ฒด ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- JavaScript ์ฒซ ๊ฑธ์
-
๋ณ์, ๋ฌธ์์ด, ์ซ์ ๋ฐ ๋ฐฐ์ด๊ณผ ๊ฐ์ ์ฃผ์ JavaScript ๊ธฐ๋ฅ์ ๋ํด ๋ ผ์ํ๋ฉด์ "JavaScript ๋ ๋ฌด์์ธ๊ฐ์?", "์ด๋ค ๋ชจ์ต์ธ๊ฐ์?", "๋ฌด์์ ํ ์ ์๋์?"์ ๊ฐ์ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ์ ์ธ ์ง๋ฌธ์ ๋ตํฉ๋๋ค.
- JavaScript ๊ตฌ์ฑ ์์
-
JavaScript์ ํต์ฌ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ๋ํ ์ดํด๋ฅผ ๋ํ๊ธฐ ์ํด ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ, ํจ์, ์ด๋ฒคํธ์ ๊ฐ์ด ํํ ์ฐพ์ ์ ์ฝ๋ ๋ธ๋ก์ ํํ์ ๋ํด์ ์์๋ด ๋๋ค.
- JavaScript ๊ฐ์ฒด ์๊ฐ
-
JavaScript์ ๊ฐ์ฒด ์งํฅ์ ํน์ฑ์ ๋ํ ์ดํด๋ ์ธ์ด์ ์ดํด๋๋ฅผ ๋์ด๋ฉฐ ํจ์จ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ๋ ค๋ ๊ฒฝ์ฐ ์ค์ํ๋ฏ๋ก, ์ด ๊ณผ์ ์ด ๋์์ด ๋ ๊ฒ์ ๋๋ค.
- ๋น๋๊ธฐ JavaScript
-
๋น๋๊ธฐ JavaScript๊ฐ ์ค์ํ ์ด์ ์, ๋น๋๊ธฐ์ ์ฝ๋๋ฅผ ์ฌ์ฉํด ์๋ฒ์์ ๋ฆฌ์์ค ๊ฐ์ ธ์ค๊ธฐ ๋ฑ ๋ธ๋กํน ์ฐ์ฐ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ด ๋๋ค.
- ํด๋ผ์ด์ธํธ์ธก ์น API
-
API๋ ๋ฌด์์ธ์ง ํ์ํด๋ณด๊ณ , ๊ฐ๋ฐ ์์ ์์ ์์ฃผ ์ ํ๊ฒ ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ API๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ด ๋๋ค.
JavaScript ์๋ด์
- JavaScript ์๋ด์
-
JavaScript ๋๋ ๋ค๋ฅธ ์ธ์ด๋ก ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ด ์๋ ๋ ์๋ค์ ๋์์ผ๋กํ JavaScript ์ธ์ด์ ๋ํ ์์ธ ๊ฐ์ด๋์ ๋๋ค.
์ค๊ธ
- ํด๋ผ์ด์ธํธ ์ธก JavaScript ํ๋ ์์ํฌ ์ดํด
-
JavaScript ํ๋ ์์ํฌ๋ ํ๋ ํ๋ฐํธ ์๋ ์น ๊ฐ๋ฐ์ ํ์ ๋ถ๋ถ์ผ๋ก, ๊ฐ๋ฐ์์๊ฒ ํ์ฅ ๊ฐ๋ฅํ ์ํธ์์ฉํ ์น ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ถํ๊ธฐ์ํ ์ ์ฆ๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด ๊ณผ์ ์์๋ ์ค๋๋ ๊ฐ์ฅ ์ธ๊ธฐ์๋ ์ผ๋ถ ํ๋ ์์ํฌ๋ฅผ ๋ค๋ฃจ๋ ์์ต์ ์๋ฆฌ์ฆ๋ก ์ด๋ํ๊ธฐ ์ ์ ํด๋ผ์ด์ธํธ ์ธก ํ๋ ์์ํฌ๊ฐ ์๋ํ๋ ๋ฐฉ์๊ณผ ๋๊ตฌ ์งํฉ์ ๋ง๋ ๋ฐฉ์์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ๋ฐฐ๊ฒฝ ์ง์์ ์ ๊ณตํฉ๋๋ค.
- JavaScript ๊ฐ์
-
๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋์ด ์จ ์ฌ๋๋ค์ด ๋นจ๋ฆฌ ๋ฐฐ์ธ ์ ์๋ JavaScript์ ๊ธฐ๋ณธ ๊ตฌ๋ฌธ๊ณผ ์๋ฏธ ์ฒด๊ณ์ ๋ํ ๊ฐ์์ ๋๋ค.
- JavaScript ๋ฐ์ดํฐ ๊ตฌ์กฐ
-
JavaScript์์ ์ด์ฉ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๊ฐ์์ ๋๋ค.
- ๋๋ฑ์ฑ ๋น๊ต ๋ฐ ๋์ผ์ฑ
-
JavaScript๋
===๋ฅผ ์ฌ์ฉํ ์์ ๋๋ฑ,==๋ฅผ ์ฌ์ฉํ ๋์จํ ๋๋ฑ, ๊ทธ๋ฆฌ๊ณObject.is()๋ฉ์๋์ ์ธ ๊ฐ์ง ๊ฐ ๋น๊ต ์ฐ์ฐ์ ์ ๊ณตํฉ๋๋ค. - ์์ฑ์ ์ด๊ฑฐ ๊ฐ๋ฅ์ฑ๊ณผ ์์ ๊ถ
-
๊ฐ์ฒด ์์ฑ ๊ทธ๋ฃน์ ํ๋์ฉ ๋ฐฉ๋ฌธํ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์์ฑ์ ์ด๊ฑฐ ๊ฐ๋ฅ์ฑ๊ณผ ์์ ๊ถ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- ํด๋ก์
-
ํด๋ก์ ๋ ํจ์์ ๊ทธ ํจ์๊ฐ ์ ์ธ๋ ์ดํ (lexical) ํ๊ฒฝ์ ์กฐํฉ์ ๋๋ค.
๊ณ ๊ธ
- ์์ ๋ฐ ํ๋กํ ํ์ ์ฒด์ธ
-
๋๋ฆฌ ์คํด ๋ฐ๊ณ ๊ณผ์ ํ๊ฐ๋ ํ๋กํ ํ์ ๊ธฐ๋ฐ ์์์ ์ค๋ช ํฉ๋๋ค.
- JavaScript ํ์ํ ๋ฐฐ์ด
-
JavaScript ํ์ํ๋ ๋ฐฐ์ด์ ์์ ์ด์ง ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ธฐ ์ํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
-
JavaScript์ ๋ฉ๋ชจ๋ฆฌ ์๋ช ์ฃผ๊ธฐ์ ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ์ค๋ช ํฉ๋๋ค.
- ๋์์ฑ ๋ชจ๋ธ ๋ฐ ์ด๋ฒคํธ ๋ฃจํ
-
JavaScript๋ "์ด๋ฒคํธ ๋ฃจํ"์ ๊ธฐ๋ฐ์ ๋ ๋์์ฑ ๋ชจ๋ธ์ด ์์ต๋๋ค.
์ฐธ๊ณ ์
์ ์ฒด JavaScript ์ฐธ๊ณ ์๋ฅผ ํ์ด๋ณด์ธ์.
- ํ์ค ๊ฐ์ฒด
-
Array,Boolean,Date,Error,Function,JSON,Math,Number,Object,RegExp,String,Map,Set,WeakMap,WeakSet๋ฑ ํ์ค ๋ด์ฅ ๊ฐ์ฒด๋ฅผ ๋ฐฐ์๋๋ค. - ํํ์ ๋ฐ ์ฐ์ฐ์
-
JavaScript ์ฐ์ฐ์
instanceof,typeof,new,this์ ๋์, ์ฐ์ฐ์ ์ฐ์ ์์ ๋ฑ์ ๋ฐฐ์๋๋ค. - ๋ช ๋ น๋ฌธ ๋ฐ ์ ์ธ๋ฌธ
-
do-while,for-in,for-of,try-catch,let,var,const,if-else,switch๋ฑ์ JavaScript์ ๊ตฌ๋ฌธ ๋ฐ ํค์๋ ์๋๋ฒ์ ๋ฐฐ์๋๋ค. - ํจ์
-
์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ฐ๋ฐํ๊ธฐ ์ํด JavaScript์ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค.
- ํด๋์ค
-
JavaScript ํด๋์ค๋ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ํํ๋ ๊ฐ์ฅ ์ ์ ํ ๋ฐฉ๋ฒ์ ๋๋ค.