๐ŸŸจ 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..