์›น ์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ_JavaScript ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ์ •๋ฆฌ

2024. 8. 29. 04:40ยท๐Ÿ  Public/web

1. JavaScript

1.1 JavaScript

HTML๊ณผ CSS๋กœ ๊ตฌ์„ฑ๋œ ์›น ํŽ˜์ด์ง€๋ฅผ ๋™์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์–ธ์–ด. JS๋ฅผ ์ด์šฉํ•˜๋ฉด ์›น ํŽ˜์ด์ง€๊ฐ€ ํŠน์ • ์ƒํ™ฉ(event)์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

JS์˜ ์‹œ์ž‘์€ ์ •์ ์ธ ์›น์„ ๋™์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ๊ฒƒ ์ด์—ˆ๋‹ค. ํ˜„์žฌ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ๋™์ž‘ํ•˜๋Š” ๋ฐ˜์ชฝ์งœ๋ฆฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์•„๋‹Œ, ํ”„๋ก ํŠธ์—”๋“œ ์˜์—ญ ๊ทธ๋ฆฌ๊ณ  ๋ฐฑ์—”๋“œ ์˜์—ญ๊นŒ์ง€ ์•„๋ฃจ๋ฅด๋Š” ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ํ‘œ์ค€์œผ๋กœ ์ž๋ฆฌ์žก๊ณ  ์žˆ๋‹ค.

 

๋ธŒ๋ผ์šฐ์ €์˜ ์˜์—ญ์ด ์•„๋‹Œ ๋ฐฑ์—”๋“œ ์˜์—ญ์€ Java, Python ๊ทธ๋ฆฌ๊ณ  JS(Node.JS)๋“ฑ ์—ฌ๋Ÿฌ ์–ธ์–ด๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ”„๋ก ํŠธ์—”๋“œ ์˜์—ญ์€ ์•ž์—์„œ ์–ธ๊ธ‰ํ•œ ์„ธ ๊ฐ€์ง€ ์–ธ์–ด๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

 

 

1.2. JS ํŠน์ง•

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ์ฑ„(Object) ๊ธฐ๋ฐ˜์˜ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋™์ ์ด๋ฉฐ, ํƒ€์ž…์„ ๋ช…์‹œํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด์ด๋‹ค. ๋˜ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ์ฒด ์ง€ํ–ฅํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ชจ๋‘ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.


2. JS์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

2.1. ๋ณ€์ˆ˜

๊ฐ„๋‹จํ•œ ๋น„์œ ์™€ ํ•จ๊ป˜ ๋ณ€์ˆ˜๋ฅผ ์ดํ•ดํ•ด๋ณด์ž. ํ•œ ๋†๋ถ€๊ฐ€ ๋ฐญ์— ์‹ฌ์„ ์”จ์•—์„ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜ ๊ตฌํ•ด์™”๊ณ , ์”จ์•—์„ ๊ตฌ๋ถ„ํ•  ๋•Œ ํŽธ์˜๋ฅผ ์œ„ํ•ด ๋ฐ”๊ตฌ๋‹ˆ ์—ฌ๋Ÿฌ๊ฐœ์— ์”จ์•—์„ ์ข…๋ฅ˜๋ณ„๋กœ ์ด๋ฆ„ํ‘œ๋ฅผ ๋ถ™์—ฌ ๋‚˜๋ˆ  ๋‹ด์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค.

 

์ด๋•Œ, ๋ณ€์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ๋ฐ”๊ตฌ๋‹ˆ, ๋ฐ”๊ตฌ๋‹ˆ์— ์ด๋ฆ„ํ‘œ๋ฅผ ๋‹ฌ์•„ ์ฃผ๋Š” ๊ฒƒ์€ ๋ณ€์ˆ˜์˜ ์„ ์–ธ, ๋ฐ”๊ตฌ๋‹ˆ์— ๋ฌผ๊ฑด์„ ๋‹ด๋Š” ๊ฒƒ์€ ํ• ๋‹น์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด, ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹น๊ทผ์ด๋ผ๋Š” ์ด๋ฆ„ํ‘œ๋ฅผ ๋ถ™์ด๊ณ  ๋‹น๊ทผ ์”จ์•—์„ ๋‹ด๋Š” ๊ฒƒ์€, ๋‹น๊ทผ์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ์ด ๋ณ€์ˆ˜์— ๋‹น๊ทผ ์”จ์•—์„ ํ• ๋‹นํ•œ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

 

JS๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ํ• ๋‹นํ•  ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค.

let [๋ณ€์ˆ˜์ด๋ฆ„] = [ํ• ๋‹นํ•  ๊ฐ’];
  • let์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์“ฐ๊ณ  ๋ณ€์ˆ˜ ๋ช…์„ ์ •ํ•œ๋‹ค
  • ํ• ๋‹น ์—ฐ์‚ฐ์ž(=)๋ฅผ ์“ฐ๊ณ  ํ•ด๋‹น ๋ณ€์ˆ˜์— ํ• ๋‹นํ•  ๊ฐ’์„ ์ ๋Š”๋‹ค

 

 

2.2. ๋ณ€์ˆ˜๋ช… ์„ ์–ธ ๋ฐฉ๋ฒ•

  • ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค(snake_case): ์–ธ๋”๋ฐ”๋ฅผ ๋„ฃ์–ด ๊ตฌ๋ถ„ํ•œ๋‹ค
  • ํŒŒ์Šค์นผ ์ผ€์ด์Šค(PascalCase): ๋ชจ๋“  ๋‹จ์–ด๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด ๊ตฌ๋ถ„ํ•œ๋‹ค
  • ์นด๋ฉœ ์ผ€์ด์Šค(camelCase): ๋‘ ๋ฒˆ์งธ ๋‹จ์–ด๋ถ€ํ„ฐ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด ๊ตฌ๋ถ„ํ•œ๋‹ค

Jacascript์—์„œ ์˜์–ด๋กœ ๋ณ€์ˆ˜๋ช…/ํ•จ์ˆ˜๋ช…์„ ์ž‘์„ฑํ•  ๋•Œ๋Š” camelCase๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ด€๋ก€์ด๋‹ค


2.3. ํƒ€์ž…

๋ณ€์ˆ˜์—๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ์—๋Š” ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.

 

2.3.1. ์ˆซ์žํ˜•

100, -100, 1/100, 3.141592

 

2.3.2. ๋ฌธ์ž์—ด(string)

๋ฌธ์ž์˜ ์ง‘ํ•ฉ์œผ๋กœ, ๋”ฐ์˜ดํ‘œ๋กœ ๋‘˜๋Ÿฌ์‹ธ์—ฌ ํ‘œ์‹œํ•œ๋‹ค. ํฐ/์ž‘์€ ๋”ฐ์˜ดํ‘œ ๋ชจ๋‘ ์ƒ๊ด€ ์—†์ง€๋งŒ ํ•ญ์ƒ ๊ฐ™์€ ์ข…๋ฅ˜์˜ ๋”ฐ์˜ดํ‘œ๋กœ ๋‹ซ์•„์ค˜์•ผํ•œ๋‹ค

'apple', "apple", "1223"

 

2.3.3. ๋ถˆ๋ฆฌ์–ธ(Boolean)

์ฐธ๊ณผ ๊ฑฐ์ง“์„ ๋‚˜ํƒ€๋‚ด๋Š” ํƒ€์ž…์ด๋‹ค.

True, False

2.4. ํ•จ์ˆ˜

ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ์— ๋”ฐ๋ผ ๊ทธ์— ๊ฑธ๋งž๋Š” ์ž‘์—…์„ ํ•˜๋Š” ํ•˜๋‚˜์˜ ๋‹จ์œ„์ด๋‹ค. ํ•จ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ๋Š” ํฌ๊ฒŒ ํ‘œํ˜„์‹๊ณผ ์„ ์–ธ์‹์œผ๋กœ ๋‚˜๋‰œ๋‹ค.

  • ์„ ์–ธ์‹: function keyword๋ฅผ ์„ ๋‘๋กœ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•œ๋‹ค
  • ํ‘œํ˜„์‹: ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ํ•จ์ˆ˜ ์ด๋ฆ„์„ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๊ณ  ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. ์˜ˆ, let name = function(parameter){...}

 

2.4.1. ํ•จ์ˆ˜์˜ ๊ตฌ์กฐ

function name(parameter) {}

 

  • function ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค
  • name: ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ด๋ฆ„
  • parameter(๋งค๊ฐœ๋ณ€์ˆ˜): ํ•จ์ˆ˜์— ํ•„์š”ํ•œ ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์—ฌ๊ธฐ์— ๋„ฃ๋Š”๋‹ค
  • body: ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ์‹คํ–‰ํ•  ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๊ณณ

๊ทธ๋ฆฌ๊ณ  ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ๋•Œ, ํ•จ์ˆ˜ ์•ˆ์— return ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ์–ด์•ผ ๊ฐ’์ด ๋ฐ˜ํ™˜๋œ๋‹ค. ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๊ฐ’์„ ์–ป๊ณ  ์‹ถ๋‹ค๋ฉด ๊ผญ ํ•จ์ˆ˜ ์•ˆ์— return ํ‚ค์›Œ๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ž.

 

#function ํ‚ค์›Œ๋“œ๋กœ example์ด๋ผ๋Š” ํ•จ์ˆ˜๋ช…์„ ๊ฐ€์ง€๋Š” ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค
function example(){ 
    let stuff = 1; #let ํ‚ค์›Œ๋“œ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค
    return stuff;
    }

examle() #example ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค

 example์ด๋ผ๋Š” ํ•จ์ˆ˜ ์ด๋ฆ„๋งŒ ์ž‘์„ฑํ•˜๋ฉด ํ•จ์ˆ˜๋Š” ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ด ๊ฒฝ์šฐ ๋ฐ˜ํ™˜๊ฐ’์ด ์•„๋‹Œ ํ•จ์ˆ˜์ž์ฒด๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค.  ๋ฐ˜๋“œ์‹œ ํ•จ์ˆ˜ ๋’ค์— ()๋ฅผ ๋ถ™์—ฌ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋„๋ก ํ•˜์ž.

 

+) ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค === ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค/ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด -> ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค

 

 

2.4.2. ํ•จ์ˆ˜ ์˜ˆ์‹œ

<๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†๋Š”>
function noParameter(){
    let veg = 'carrot';
    return veg;
}

noParameter();
<๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š”>
function YesParameter(carrot){
    return carrot;
}

YesParameter('๋‹น๊ทผ');
function add(number){
    number = number +1;
    return number;
}

add(1) //2
add(10) //11

3. JS ๋ฌธ๋ฒ•/ ๋ณ€์ˆ˜ ์‹ฌํ™”/ ํƒ€์ž… ์‹ฌํ™”

3.1. console.log

console.log๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋””๋ฒ„๊น…(์ถœ๋ ฅ) ๋ฐฉ๋ฒ•์ด๋‹ค.

console.log('apple');

 

 

3.2. var, let, const ์ฐจ์ด์ 

JavaScript์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹์—๋Š” ์„ธ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. var, let, const์ด๋‹ค. var์€ ๋น„๊ต์  ์˜ค๋ž˜์ „๋ถ€ํ„ฐ ์‚ฌ์šฉ๋˜์–ด ์™”์ง€๋งŒ, ํ˜„์žฌ๋Š” ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ์‹์ด๊ณ , ์ฃผ๋กœ let๊ณผ cont๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.

 

 

3.2.1. ์ค‘๋ณต ์„ ์–ธ๊ณผ ์žฌํ• ๋‹น

var์€ ์ค‘๋ณต ์„ ์–ธ๊ณผ ์žฌํ• ๋‹น์ด ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋‹ค.

var a =5;
console.log(a) //5

var a =10;
console.log(a) //10

 

 

let์—์„œ๋Š” ์ค‘๋ณต ์„ ์–ธ์€ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ณ , ์žฌํ• ๋‹น ๊ฐ€๋Šฅํ•˜๋‹ค.

//์ค‘๋ณต ์„ ์–ธ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค
let a =5;
let a=10;
cnosole.log(a); // SyntaxError: Identifier 'a' has already been declared

//์žฌํ• ๋‹น์€ ๊ฐ€๋Šฅํ•˜๋‹ค
let a =5;
console.log(a); //5

a= 10;
console.log(a); //10

 

 

const๋Š” ์ค‘๋ณต ์„ ์–ธ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ณ , ์žฌํ• ๋‹น๋„ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์™œ๋ƒํ•˜๋ฉด const๋Š” ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ํ‚ค์›Œ๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ƒ์ˆ˜๋ž€, ํ•œ ๋ฒˆ ๊ฐ’์ด ์ •ํ•ด์ง€๋ฉด ํ”„๋กœ๊ทธ๋žจ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์—์„œ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๊ฐ’์ด๋‹ค.

//์ค‘๋ณต ์„ ์–ธ์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค
const a = 5;
const a = 10;
cnosole.log(a); // SyntaxError: Identifier 'a' has already been declared

//์žฌํ• ๋‹น๋„ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค
const a = 5;
console.log(a); // 5

a = 10;
console.log(a); // TypeError: Assignment to constant variable.

 

 

 

3.2.2. ์Šค์ฝ”ํ”„ ๋ฒ”์œ„

var์€ ํ•จ์ˆ˜ ๋‹จ์œ„ ์Šค์ฝ”ํ”„(function-level scope)์ด๋‹ค. var ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ ์–ด๋””์„œ๋“  ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์™ธ๋ถ€๋กœ๋Š” ์ฐธ์กฐ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋˜ํ•œ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์„ ์–ธ๋œ var์€ ์ง€์—ญ๋ณ€์ˆ˜๋กœ ๊ฐ„์ฃผํ•˜์ง€๋งŒ, ํ•จ์ˆ˜ ์™ธ๋ถ€์—์„œ var๊ฐ€ ์„ ์–ธ๋˜์—ˆ๋‹ค๋ฉด ์ „์—ญ๋ณ€์ˆ˜๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.

function hello(){
    var a = 10;
    console.log(a);
}

hello(); // 10

console.log(a);  //ReferenceError: a is not defined

 

 

let๊ณผ const๋Š” ๋ธ”๋ก ๋‹จ์œ„ ์Šค์ฝ”ํ”„(block-level scope)์ด๋‹ค. { } ๋ธ”๋ก ๋‚ด๋ถ€์—์„œ ์„ ์–ธ๋œ let, const ๋ณ€์ˆ˜๋Š” ์™ธ๋ถ€์—์„œ ์ฐธ์กฐ๋˜์ง€ ์•Š๋Š”๋‹ค.

function hello() {
	let a = 5;
    console.log(a); // 5
}

console.log(a); // ReferenceError: a is not defined

 

 

 

3.2.3. ํ˜ธ์ด์ŠคํŒ…

JS์—์„œ ํ˜ธ์ด์ŠคํŒ…(hoisting)์ด๋ž€, ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์„ ์–ธ ์ „์— ๋ฏธ๋ฆฌ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋‹จ์ˆœํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด, ๋‹จ์–ด ๋œป ์ฒ˜๋Ÿผ ์Šคํฌ๋ฆฝํŠธ ๋‚ด ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜์˜ ์„ ์–ธ ์ˆœ์„œ์— ์ƒ๊ด€ ์—†์ด ์ˆœ์„œ๊ฐ€ ๋Œ์–ด์˜ฌ๋ ค์ง„ ๋“ฏํ•œ ํ˜„์ƒ์ด๋‹ค. ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋Œ์–ด์˜ฌ๋ ค์ง€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ JS ์—”์ง„์ด ๋จผ์ € ์ „์ฒด ์ฝ”๋“œ๋ฅผ ํ•œ ๋ฒˆ ์Šค์บ”ํ•˜๊ณ  ์‹คํ–‰์ปจํ…์ŠคํŠธ์— ๋ฏธ๋ฆฌ ๊ธฐ๋กํ•ด ๋†“๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

var์€ ํ˜ธ์ด์ŠคํŒ…์ด ๋ฐœ์ƒํ•œ๋‹ค. ๋’ค์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜ a๊ฐ€ ์•ž์— ์ฐธ์กฐ๋˜์—ˆ์Œ์—๋„ error๊ฐ€ ์•„๋‹Œ undefined๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค.

console.log(a);  // undefined :: ๋ณ€์ˆ˜ ์„ ์–ธ ์ด์ „์— ๋ณ€์ˆ˜ ์ฐธ์กฐ ๊ฐ€๋Šฅ

var a  // ์ดˆ๊ธฐํ™”

console.log(a);  // undefined

a = 10  // ํ• ๋‹น

console.log(a);  // 10

 

 

let๊ณผ const๋„ ํ˜ธ์ด์ŠคํŒ…์ด ๋ฐœ์ƒํ•˜์ง€๋งŒ, ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•œ๋‹ค.

console.log(a);  // ReferenceError :: ๋ณ€์ˆ˜ ์„ ์–ธ ์ด์ „์— ๋ณ€์ˆ˜ ์ฐธ์กฐ ๋ถˆ๊ฐ€๋Šฅ
let a  // ์ดˆ๊ธฐํ™”

console.log(a);  // undefined
a = 10  // ํ• ๋‹น

consloe.log(a);  // 10

let๊ณผ const๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š”, ๋ณ€์ˆ˜์˜ ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™” ์‚ฌ์ด์— ์ผ์‹œ์ ์œผ๋กœ ๋ณ€์ˆ˜๊ฐ’์„ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋Š” ๊ตฌ๊ฐ„์ธ TDZ(Temporal Dead Zone)๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฒŒ์–ด์ง€๋Š” ํ˜„์ƒ์ด๋‹ค. ํ˜ธ์ด์ŠคํŒ…์€ ๋ฐœ์ƒํ•˜์ง€๋งŒ, ๊ฐ’์„ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค.

'๐Ÿ  Public > web' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

HTML & Internet  (3) 2024.09.05
[๊ณต๋ถ€] MySQL ๊ธฐ์ดˆ  (9) 2024.09.02
์›น ์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ_๊ธฐ์ดˆ ๋ฌธ๋ฒ• ์ •๋ฆฌ  (0) 2024.09.01
์›น ์‚ฌ์ดํŠธ ์ œ์ž‘_ํŒŒ์ด์ฌ ๊ธฐ์ดˆ ์ •๋ฆฌ  (0) 2024.08.23
[๋นก๊ณตํŒŸ Web Hacking Track] OT  (0) 2024.08.14
'๐Ÿ  Public/web' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๊ณต๋ถ€] MySQL ๊ธฐ์ดˆ
  • ์›น ์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ_๊ธฐ์ดˆ ๋ฌธ๋ฒ• ์ •๋ฆฌ
  • ์›น ์‚ฌ์ดํŠธ ์ œ์ž‘_ํŒŒ์ด์ฌ ๊ธฐ์ดˆ ์ •๋ฆฌ
  • [๋นก๊ณตํŒŸ Web Hacking Track] OT
SONOTREE
SONOTREE
@-@
  • SONOTREE
    SONOTRI
    SONOTREE
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (84)
      • ๐ŸŒฒ Dreamhack (33)
        • System Hacking (8)
        • Embedded Hacking (5)
        • Reverse Engineering (11)
        • Web Hacking (4)
        • Digital Forensics (2)
        • CTF Wriet-Up (3)
      • ๐Ÿฉธ Language (8)
        • C Language (2)
        • Java Language (6)
      • ๐Ÿฆ– Private (9)
        • ๊ฐ€๋ช…์ •๋ณด (0)
        • LinuxMaster (1)
        • webhacking.kr (3)
        • bandit (4)
        • GoN Club Study (1)
      • ๐Ÿ  Public (13)
        • Development (2)
        • web (8)
        • forensic (0)
        • elif (3)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
SONOTREE
์›น ์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ_JavaScript ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ์ •๋ฆฌ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”