๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿ–ฅ dev-ruby

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ๋ณ€์ˆ˜ ์Šค์ฝ”ํ”„ ์ดํ•ดํ•˜๊ธฐ | var, let, const ๋ณธ๋ฌธ

javascript

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ๋ณ€์ˆ˜ ์Šค์ฝ”ํ”„ ์ดํ•ดํ•˜๊ธฐ | var, let, const

ruby_s 2021. 12. 21. 15:35
728x90
๋ฐ˜์‘ํ˜•
SMALL

์•„๋ž˜ ๊ธ€์„ ์ฝ๊ณ ์˜ค๋ฉด ์ดํ•ด๊ฐ€ ๋” ์‰ฌ์šธ ๊ฒƒ์ด๋‹ค

2021.12.20 - [javascript] - [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ | ๋ณ€์ˆ˜, ์ž๋ฃŒํ˜•, ๊ฐ์ฒด, ๋ฐฐ์—ด, ํ•จ์ˆ˜

 

var

var ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„์— ์ข…์†๋œ๋‹ค.

 for ๋ฃจํ”„ ๋‚ด์—์„œ ์„ ์–ธ๋œ var๋Š” for ๋ฃจํ”„ ๋ฐ–์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

let

let ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ๋ธ”๋ก ์Šค์ฝ”ํ”„๋กœ ์ข…์†๋œ๋‹ค.

๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ๋ธ”๋ก๊ณผ ๊ทธ ํ•˜์œ„ ๋ธ”๋ก ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

var ์™€ let ์˜ ์ฐจ์ด

let์€ x๋ฅผ ๋ธ”๋ก ์Šค์ฝ”ํ”„๋‚ด์—์„œ  ์žฌ์„ ์–ธํ•˜์—ฌ ๊ฐ’์„ ์žฌํ• ๋‹น ํ•  ๊ฒฝ์šฐ ๋ฎ์–ด์จ์ง€์ง€ ์•Š์ง€๋งŒ,

var๋Š” ๋ธ”๋ก ์Šค์ฝ”ํ”„ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์žฌํ• ๋‹นํ•  ๊ฒฝ์šฐ ๊ฐ’์ด ๋ฎ์–ด์จ์ง„๋‹ค.

// let
let x = "global";
if(x === "global"){
    let x = "block-scoped";
    console.log(x);	// block-scoped
}
console.log(x);	// global

// var
var x = "global";
if(x === "global"){
    var x = "block-scoped";
    console.log(x);	// block-scoped
}
console.log(x);	// block-scoped

 

const

let๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ธ”๋ก ์Šค์ฝ”ํ”„์— ์ข…์†๋˜์ง€๋งŒ ๊ฐ’์„ ์žฌํ• ๋‹นํ•  ์ˆ˜ ์—†๊ณ , ๋‹ค์‹œ ์„ ์–ธ๋  ์ˆ˜๋„ ์—†๋‹ค.

const์— ๊ฐ์ฒด๊ฐ€ ๋‹ด๊ฒผ๋‹ค๋ฉด?

const person = {
    name: "Alberto",
    age: 25,
}

person.age = 26;
console.log(person.age);	// 26

์ด ๊ฒฝ์šฐ ๋ณ€์ˆ˜ ์ „์ฒด๋ฅผ ์žฌํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์†์„ฑ ์ค‘ ํ•˜๋‚˜๋งŒ ์žฌํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค.

-> ๊ฐ์ฒด๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š”๋ฒ•

const person = {
    name: "Alberto",
    age: 25,
}
Object.freeze(person);

person.age = 26;
console.log(person.age);	// 25

 

TDZ : ์ผ์‹œ์  ๋น„ํ™œ์„ฑํ™” ๊ตฌ์—ญ

console.log(i);	// undefined
var i = "I am a variable";

console.log(j);	// Reference Error
let j = "I am a let";å

var๋Š” ์ •์˜๋˜๊ธฐ ์ „์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, ๊ทธ ๊ฐ’์—๋Š” ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.

let๊ณผ const๋Š” ์ •์˜๋˜๊ธฐ ์ „์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.


var๊ฐ€ ๊ฐ€์ง€๋Š” ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ ์ •์˜๋˜๊ธฐ ์ „์—๋„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค. ์ •์˜๋˜๊ธฐ ์ „์—๋Š” undefined๊ฐ’์„ ๊ฐ–๋Š”๋‹ค.

๋ฐ˜๋ฉด, let์˜ ๊ฒฝ์šฐ ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋  ๋•Œ๊นŒ์ง€ TDZ๊ตฌ์—ญ์— ์žˆ๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ, ์ดˆ๊ธฐํ™” ์ „์— ์ ‘๊ทผ ์‹œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

undefined๊ฐ’๋ณด๋‹ค ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ํŽธ์ด ์ฝ”๋“œ ๋””๋ฒ„๊น…์ด ๋” ์‰ฝ๋‹ค.

 

 

728x90
๋ฐ˜์‘ํ˜•
LIST