๋ชฉ๋กDEV_IN/JavaScript (6)
let's get IT with DAVINA ๐ป
1.1 ์๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ ์น ๋ธ๋ผ์ฐ์ ์์ ๋์ํ๋ ์คํฌ๋ฆฝํธ ์ธ์ด์ด๋ค. ์ฒ์์ ์น ํ์ด์ง ์ ์์ ์์ด์ ๋ณด์กฐ์ ์ธ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ์ฉ๋๋ก์จ ์ฌ์ฉํ์ฌ ์ฃผ๋ชฉ๋ฐ์ง ๋ชปํ๋ ์ธ์ด..๐ฅฒ BUT, prototype.js์ ๊ฐ์ ์ฃผ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ๊ฐ๋ฐ๋๊ณ && jQuery์ ๋ฑ์ฅ์ผ๋ก ๋ณด๋ค ์ฝ๊ฒ DOM(Document Object Model)์ ํธ๋ค๋งํ๊ฒ ๋๋ฉด์ ๋ง์ ๋ฐ์ ์ ์ด๋ฃจ์๋ค. 1.2 ์๋ฐ์คํฌ๋ฆฝํธ ํ์ฉ ๋ฒ์ 1.2.1 ์น ๊ฐ๋ฐ ํฌ๋กฌ์ด๋ ํ์ด์ดํญ์ค ๋ฑ ์น ๋ธ๋ผ์ฐ์ ๋ค์ด ๋๋ ์ด ๋ฐ์ ํ๋ฉด์ ์๋ก์ด ๋ฒ์ ์ ๋ด๋์๋๋ง๋ค ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ฑ๋ฅ ํฅ์์ ๊ฐ์กฐํ๋ค. ์ด๋ ์น ํ์ด์ง ๊ฐ๋ฐ์ ์์ด ์๋ฐ์คํฌ๋ฆฝํธ์ ์ญํ ์ด ์ผ๋ง๋ ํฐ์ง๋ฅผ ๋ฐฉ์ฆํ๋ค. 1.2.2 ์๋ฒ ๊ฐ๋ฐ Node.js์ ์ถํ์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฉํ ์๋ฒ ๊ฐ๋ฐ๋ ํ..
Module → ์ฝ๋๋ฅผ ๊ทธ ํ์ผ ๋ด๋ถ์์๋ง ํ์ ํ ์ ์๋๋ก "๋ชจ๋ํ" ํ๋ ๊ฒ! → ๋ชจ๋ํ๋ฅผ ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ํ์ผ์์ ์ฝ๋๋ฅผ ๊ณต์ ํด๋ฒ๋ฆด ์ ์๋ค. (์ด๋ฆ ์ ์ธ ์ถฉ๋์ด ์ผ์ด๋ ์ ์๊ฒ ์ฐ?!?!) ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์๋ window์, node ํ๊ฒฝ์์๋ global์ ์ ์ฅ๋์ด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ! //index.html //๋ชจ๋ํํ๊ธฐ //module1.js //export default๋ ํํ์ผ์์ ํ๋๋ง ๊ฐ๋ฅ! export default function add(a,b){ return a+b; } //๊ทธ๋ฅ export export function print() { console.log("print"); } //module2.js import add from "./module1.js" import {pri..
JS์์ this๋ ์ ์ด๋ ค์ธ๊น? ๋ค๋ฅธ ์ธ์ด๋ค์์ this๋ ๋ง๋ค์ด์ง ๊ฐ์ฒด ์๊ธฐ ์์ ์ ๋ปํ์ง๋ง, JS์์ ๋ค๋ฅด๋ค! JS์์ this๋ ์์ ๋จํ ์ง๋๋ค!! ๋๊ฐ ํธ์ถํ๋์ ๋ฐ๋ผ ๋๊ตฌ์ ์ง๋์ธ์ง ๋์ ์ผ๋ก ๋ฌ๋ผ์ง๋ค. This 1. ๋ธ๋ผ์ฐ์ ์ ์ญ์ค์ฝํ์์ console.log(this) result : window ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํด reason : ๋ธ๋ผ์ฐ์ ์ ์ญ ๊ฐ์ฒด๊ฐ window์ด๊ธฐ ๋๋ฌธ์ 2. function(){} ๋ด๋ถ์์ this ํธ์ถ result : window ๊ฐ์ฒด๊ฐ ๋์ด reason : 'ํจ์'๋ ์ ์ธ ์ window ๊ฐ์ฒด์ '๋ฑ๋ก'๋จ. ์ด ํจ์๋ class์ ์ํ ๊ฒ๋ ์๋๊ณ , ์ ์ญ ์ค์ฝํ์์ ํธ์ถ๋์๊ธฐ ๋๋ฌธ์ this๊ฐ ์ํ ๊ณณ์ window ๊ฐ์ฒด์. ๋ฐ๋ผ์, window.simpleFun()๋ก๋..
TypeScript๋ฅผ ๋ฐฐ์ฐ๋ฉด์ ๊ฒฐ๊ตญ, ํ์ ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ superset์ธ๋ฐ ๊ทธ๋ฌ๋ ค๋ฉด JavaScript ๊ฐ๋ ์ ์กฐ๊ธ ๋ ์ ๋ฆฌ ํ ํ์์ฑ์ ๋๊ผ๋ค๋น Prototype์ JS์ ์์ ๊ธฐ๋ฅ, ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ํ ๊ฒ์ด๋ค!!! Prototype TS๋ ์๋์๊ฐ์ด JS์ superset์ ๋๋ค. JS์์ ์์๋, class, interface, generics, types ๋ฑ์ ์ด์ฉํด์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํ์ต๋๋ค. BUT, JS๋ ์๋ฐํ ๋งํ๋ฉด proto-based๋ฅผ ํตํด ๊ฐ์ฒด ์งํฅ์ ๋๋ค. ๋ํ, ES6๋ถํฐ๋ class๋ฅผ ์ด์ฉํด์ ํ๋กํ ๋ฅผ ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํฉ๋๋ค. Prototype์ ์์์ ์ํด ์ฐ์ด๋ ์์ด์ ๋๋ค! ์ฐ๋ฆฌ๊ฐ Class๋ฅผ ์ด์ฉํด์ ์์์ ๊ตฌํํ ์ ..
MDN์ ๋ฐ๋ฅด๋ฉด, ์ด๋ฒคํธ ๋ฃจํ๋, "JS์ ๋ฐํ์ ๋ชจ๋ธ์ ์ฝ๋์ ์คํ, ์ด๋ฒคํธ์ ์์ง๊ณผ ์ฒ๋ฆฌ, ํ์ ๋๊ธฐ ์ค์ธ ํ์ ์์ ์ ์ฒ๋ฆฌํ๋ ์ด๋ฒคํธ ๋ฃจํ์ ๊ธฐ๋ฐํ๊ณ ์๋ค" ๋ผ๊ณ ๋์จ๋ค.. ๋ฌด์จ๋ง์ธ์ง ๋ํต ๋ชจ๋ฅด๊ฒ ์ผ๋, ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์คํ ์๋ฆฌ๋ฅผ ์ด์ง ์์๋ณด์ JavaScript, what r u? ์ฑ๊ธ ์ค๋ ๋ ์ธ์ด์ด๋ค. ๋ญ๋ง์ด๋? โท ํ๋์ ํ๋ก๊ทธ๋จ์ ๋์์ ํ๋์ ์ฝ๋๋ง ์คํํ ์ ์๋ค. one thread === one call stack === one thing at a time (๋ฉํฐ๊ฐ ์๋ผ!!) ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ Memory Heap & Call Stack์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. (๊ฐ์ฅ ์ ๋ช ํ ๊ฒ์ด ๊ตฌ๊ธ์ V8 Engine) Memory Heap : ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ผ์ด๋๋ ์ฅ์ ex) ์ฐ๋ฆฌ๊ฐ ํ๋ก๊ทธ๋จ์..
19000->โฉ19,000 export const priceFormatter = new Intl.NumberFormat("ko", { style: "currency", currency: "krw", }); priceFormatter.format( roomType === "1 King Bed" ? pageDetail.rooms ? pageDetail.rooms[0].price: 0 : pageDetail.rooms ? pageDetail.rooms[1].price: 0 )