๐จ JavaScript/๊ฐ๋
[์ฝ๋ฉ์๋ง ์ธ] ๊ฐ์ฒด ๋ฆฌํฐ๋ด๊ณผ ๊ฐ์ฒด ์ ๊ทผ๋ฒ, ๊ทธ๋ฆฌ๊ณ ์์ฑ์ ํจ์
๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์๋ ๋ ๊ฐ์ง๊ฐ ์๋ค. ๊ฐ์ฒด ๋ฆฌํฐ๋ด ์์ฑ์ ํจ์ ๋จ ํ๋์ ๊ฐ์ฒด๋ง์ ์์ฑํ ๋๋ ์ง๊ด์ ์ด๊ณ ๊ฐํธํ ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ์ฌ์ฉํ๊ณ , ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๋๋์์ฐํ ๋๋ ์์ฑ์ํจ์๋ฅผ ์ฌ์ฉํ๋ค. ๊ฐ์ฒด ๋ฆฌํฐ๋ด const goodCoder = { name : 'Noran', age : 20, } * ์์ /์ ์ง๋ณด์๊ฐ ์ฉ์ดํ๋๋ก ๋ง์ง๋ง ๊ฐ์๋ ๋๋๋ก ,๋ฅผ ๋ถ์ฌ์ฃผ์. ๊ฐ์ฒด.์ ๊ทผ goodCoder.name goodCoder['age'] ๊ฐ์ฒด.์ถ๊ฐ goodCoder.gender = "Female"; goodCoder.clothes = "sweatshirt"; ๊ฐ์ฒด.์ญ์ delete goodCoder.clothes; ์์ฑ์ ํจ์ (object constructor function) function Coder(name,..
[์ฝ๋ฉ์๋ง ์ธ] ๊ฐ์ฒด(Object)์ ํ๋กํผํฐ(property)
๊ฐ์ฒด(Object) key์ value๋ก ์ด๋ฃจ์ด์ง ์ ์๋ค. 1. ํจ์ํํ์ const goodCoder = function(name, age, coding) { name : 'Noran', age : 20, coding : function(){ console.log('ํ์ดํ !'); } } name : 'Noran', age : 20, coding fuction์ ํ๋กํผํฐ(property), name๊ณผ age๋ key, 'Noran'๊ณผ 20์ value์ด๋ค. coding์ method(๊ฐ์ฒด ํ๋กํผํฐ๋ก ํ ๋น๋ ํจ์)์ด๋ค. 2. ํจ์์ ์ธ๋ฌธ function goodCoder(name, age, coding) { name : 'Noran', age : 20, coding : function(){ console...
[์ฝ๋ฉ์๋ง] ํจ์์ ์ธ๋ฌธ๊ณผ ํจ์ํํ์, ๊ทธ๋ฆฌ๊ณ ํ์ดํํจ์ (์ถ๊ฐ)
ํจ์์ ์ธ๋ฌธ (Function declaration) function goodCoder(){ console.log('Hello World'); } ์ด๋์๋ ํธ์ถ๊ฐ๋ฅํ๋๋ก ํธ์ด์คํ ๋๋ค. ํจ์ํํ์ (Function expression) let goodCoder = function(){ console.log('Hello World'); } ์ฝ๋์ ๋๋ฌํ๋ฉด ์์ฑ๋๋ค. ํจ์์ ์ธ๋ฌธ๊ณผ ํจ์ํํ์์ ์ฐจ์ด์ ? ํจ์ํํ์์ ํ ๋น๋ ๋ค์๋ถํฐ ํธ์ถ์ด ๊ฐ๋ฅํ ๋ฐ๋ฉด, ํจ์์ ์ธ๋ฌธ์ ํธ์ด์คํ ์ด ๋์ด์ ์ ์ธ๋๊ธฐ ์ด์ ์๋ ํธ์ถ์ด ๊ฐ๋ฅํ๋ค. ํ์ดํํจ์ 3๋จ๋ณ์ ์ฌ๊ธฐ ํจ์ํํ์์ด ์๋ค. let goodCoder = function(code1,code2){ return code1 + code2; } ์ฌ๊ธฐ์ funtion์ด ๋น ์ง๊ณ ๋งค๊ฐ๋ณ์ ๋ค..
[๋๋ฆผ์ฝ๋ฉ/์ฝ๋ฉ์๋ง] scope์ hoisting, ๊ทธ๋ฆฌ๊ณ TDZ (์ถ๊ฐ)
scope ๋ณ์์ '์๋ช ' local scope global scope 1. local scope ์ง์ญ๋ณ์(Local Variable)๊ฐ ๊ฐ์ง๋ ๋ฒ์๋ก, ํจ์๊ฐ ์คํ๋๋ฉด ๋ง๋ค์ด์ง๊ณ ํจ์๊ฐ ์ข ๋ฃ๋๋ฉด ์๋ฉธํ๋ค. ํจ์ ์ธ๋ถ์์๋ ์ ๊ทผํ ์ ์๋ค. 2. global scope ์ ์ญ๋ณ์(Global Variable)๊ฐ ๊ฐ์ง๋ ๋ฒ์๋ก ๋ณ์๊ฐ ํจ์ ์ธ๋ถ์์ ์ ์ธ๋์ด ํ๋ก๊ทธ๋จ ์ ์ฒด์์ ์ ๊ทผํ ์ ์๋ค. let globalMsg = 'global'; // global variable function printMsg() { let msg = 'hello'; console.log(msg); // local variable console.log(globalMsg); // ์ ์์๋ํ๋ค. } printMsg(); console...
[๋๋ฆผ์ฝ๋ฉ/์ฝ๋ฉ์๋ง] strict๋ชจ๋์ var/let/const
'use strict'; ์ด ์ฝ๋๋ฅผ ์คํฌ๋ฆฝํธ๋ ํจ์์ ์์ ๋ถ๋ถ์ ์ ์ธํ๊ณ strict ๋ชจ๋๋ก ๊ฐ๋ฐํ๋ค๋ฉด, ์๋์ผ๋ก ํ์ฉ๋๋ ์๋ชป๋ ์ฝ๋๋ฅผ ์ค๋ฅ๋ก ๋ณ๊ฒฝํ์ฌ (์กด์ฌํ์ง ์๋ ๋ณ์/๊ฐ์ฒด ๋ฑ์ ์ก์๋ด๋ ๋ฑ) ๋ชจ๋ ์ฝ๋๊ฐ strict ๋ชจ๋์์ ์คํ๋์ด ๋ถํ์ํ ์ค๋ฅ๋ฅผ ์๋ฐฉํ๊ณ ์ฑ๋ฅ ๊ฐ์ ๋ ๊ธฐ๋ํ ์ ์๋ค. (* es5์์ ์ถ๊ฐ๋จ) 1. var var x = "Hello world"; var x = 0; //์ค๋ฅ์์ด ์๋ํ๋ค. ์ ์ธ+์ด๊ธฐํ -> ํ ๋น ์ด๋๋ ํธ์ด์คํ ์ด ๊ฐ๋ฅํ ์ ์ธ๋ฐฉ์์ด๋ค. block scope์ ์ ๋ถ ๋ฌด์ํ๊ณ function scope๋ฅผ ์ฌ์ฉํ๋ค. ๋ณ์๋ฅผ ์ด๋ ๊ณณ์์๋ ๋ถ๋ฌ์จ๋ค. ์ํ๋ถ๋ด์ด ํฌ๋ค. ๊ทธ๋ฌ๋ es6 ์ดํ ์๋ ์ ์ธ๋ฐฉ์์ด ๋์จ๋ค. 2. let let x = "Hello world"; l..
[๋๋ฆผ์ฝ๋ฉ] html์ js๋ฅผ ๋งํฌํ๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ๋ค
1. head ๋ด๋ถ์ ์์ฑ ์์์๋ถํฐ HTML์ ์ฝ๋๋ค (parsing html) -> blocked ๋ ์ํ์์ js๋ฅผ ์ฝ๋๋ค. (fetching/executing js) -> ๋ค์ HTML์ ์ฝ๋๋ค. ์ด ๋ฐฉ๋ฒ์ js๊ฐ ์ฉ๋์ด ํฌ๋ค๋ฉด ์น์ฌ์ดํธ๋ฅผ ๋ถ๋ฌ์ค๋๋ฐ๊น์ง ๋ง์ ์๊ฐ์ด ์์๋๋ค. 2. body ๋ด๋ถ์ ์์ฑ parsing html -> ํ์ด์ง๊ฐ ์๋ฃ๋ ์ํ์์ js๋ฅผ ์ฝ๋๋ค. (fetching/executing js) ์ฌ์ฉ์๊ฐ js๊ฐ ์ ์ฉ๋์ง ์์ ์น์ฌ์ดํธ (๋ฐ์ดํฐ๋ DOM ์์๊ฐ ๊พธ๋ฉฐ์ง์ง ์์ ์ํ) ๋ฅผ js๊ฐ ๋ฐ์์ง๊ธฐ ์ ๊น์ง ๋ณด๊ฒ ๋๋ค. 3. head ๋ด๋ถ์ ์์ฑ (asyn) parsingํ๋ค๊ฐ js๋งํฌ๋ฅผ ๋ง๋๋ฉด parsing๊ณผ ๋ณ๋ ฌ๋ก js๋ฅผ ์ฝ๋ค๊ฐ js๊ฐ ๋ฐ์์ง๋ฉด(fetching) ์คํ(execu..