Zoeeey
Stack flows in you
Zoeeey
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (155)
    • ๐Ÿ’ก UXUI (4)
      • UXUI (2)
      • UI (2)
      • UX (0)
    • ๐ŸŸจ JavaScript (66)
      • ๊ฐœ๋… (42)
      • ์ •๋ฆฌ (2)
      • ๋ฌธ์ œํ’€๊ธฐ (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค, ์ฝ”๋”ฉ์• ํ”Œ) (15)
      • ์‘์šฉํ•˜์—ฌ ์ž๋™ํ™”or๋ฌธ์ œํ•ด๊ฒฐํ•˜๊ธฐ (2)
      • ๊ธฐํƒ€ (5)
    • โš›๏ธ React (49)
      • ๊ฐœ๋… (27)
      • ๊ฐœ๋…(Redux) (3)
      • ์ •๋ฆฌ (4)
      • ๋ฌธ์ œํ’€๊ธฐ (์ฝ”๋”ฉ์• ํ”Œ: React) (15)
    • ๐Ÿ“˜ TypeScript (10)
      • ๊ฐœ๋… (8)
      • ๋ฌธ์ œํ’€๊ธฐ (์ฝ”๋”ฉ์• ํ”Œ) (2)
    • ๐ŸŒ HTML,CSS (18)
      • ์‹ค๋ฌด์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋“ค (10)
      • ๋’ค๋Šฆ๊ฒŒ ์•Œ์•„์„œ ๋ผˆ์•„ํ”ˆ ์œ ์šฉํ•œ CSS (6)
      • ๊ธฐํƒ€ ์ž์ฃผ ์“ฐ๋Š” CSS (2)
    • ๐Ÿ’ป CS (8)
      • CS (5)
      • ์ •๊ทœํ‘œํ˜„์‹ (2)
      • Git,Github (1)

ํƒœ๊ทธ

  • redux
  • ์˜ค๋ฅ˜
  • UXUI
  • ์‚ผํ•ญ์—ฐ์‚ฐ์ž
  • array
  • state
  • ์ฝ”๋”ฉ์• ํ”Œ
  • Props
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • react
  • json
  • object
  • CS
  • useEffect
  • TypeScript
  • axios
  • class
  • CSS
  • Ajax
  • JavaScript
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
hELLO ยท Designed By ์ •์ƒ์šฐ.
Zoeeey

Stack flows in you

๐ŸŸจ JavaScript/๊ฐœ๋…

[๋“œ๋ฆผ์ฝ”๋”ฉ/์ฝ”๋”ฉ์•™๋งˆ] strict๋ชจ๋“œ์™€ var/let/const

2022. 4. 14. 12:38
'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";
let x = 0;

// SyntaxError: 'x' has already been declared
์„ ์–ธ -> ์ดˆ๊ธฐํ™” -> ํ• ๋‹น

 

๋ณ€์ˆ˜๊ฐ€ ์ˆ˜์ •๋  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์ด๋‹ค. (mutable type)

let์˜ ํ˜ธ์ด์ŠคํŒ…์€ scope ๋‹จ์œ„๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

let x = 30;
function showX(){
    console.log(x);
    let x = 10;
}
showX();

 

์œ„ ์˜ˆ์‹œ์—์„œ console.log(x)๋Š” TDZ(๋ณ€์ˆ˜๊ฐ€ ํ• ๋‹น๋˜๊ธฐ ์ „์œผ๋กœ, ์‚ฌ์šฉ ๋ถˆ๊ฐ€ํ•œ ์˜์—ญ)์ด๋‹ค.

hoisting์€ ๋˜์—ˆ์œผ๋‚˜ TDZ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ showX๋Š” 30๋„ 10๋„ ์ฐ์ง€ ์•Š๊ฒŒ ๋˜๋ฏ€๋กœ,

showX๋Š” console.log(x)์—์„œ ReferenceError๊ฐ€ ๋‚˜์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค.


3. const

const x = "Hello world";
์„ ์–ธ + ์ดˆ๊ธฐํ™” + ํ• ๋‹น (๋™์‹œ์—)

 

const๋Š” ํ•œ๋ฒˆ ํ• ๋‹น๋œ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค. (immutable data type)


์ถœ์ฒ˜ : ๋“œ๋ฆผ์ฝ”๋”ฉ https://www.youtube.com/@dream-coding / ์ฝ”๋”ฉ์•™๋งˆ https://www.youtube.com/@codingangma

'๐ŸŸจ JavaScript > ๊ฐœ๋…' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์ฝ”๋”ฉ์•™๋งˆ ์™ธ] ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด๊ณผ ๊ฐ์ฒด ์ ‘๊ทผ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ์ƒ์„ฑ์ž ํ•จ์ˆ˜  (0) 2022.04.14
[์ฝ”๋”ฉ์•™๋งˆ ์™ธ] ๊ฐ์ฒด(Object)์™€ ํ”„๋กœํผํ‹ฐ(property)  (0) 2022.04.14
[์ฝ”๋”ฉ์•™๋งˆ] ํ•จ์ˆ˜์„ ์–ธ๋ฌธ๊ณผ ํ•จ์ˆ˜ํ‘œํ˜„์‹, ๊ทธ๋ฆฌ๊ณ  ํ™”์‚ดํ‘œํ•จ์ˆ˜ (์ถ”๊ฐ€)  (0) 2022.04.14
[๋“œ๋ฆผ์ฝ”๋”ฉ/์ฝ”๋”ฉ์•™๋งˆ] scope์™€ hoisting, ๊ทธ๋ฆฌ๊ณ  TDZ (์ถ”๊ฐ€)  (0) 2022.04.14
[๋“œ๋ฆผ์ฝ”๋”ฉ] html์— js๋ฅผ ๋งํฌํ•˜๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•๋“ค  (0) 2022.04.14
    '๐ŸŸจ JavaScript/๊ฐœ๋…' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [์ฝ”๋”ฉ์•™๋งˆ ์™ธ] ๊ฐ์ฒด(Object)์™€ ํ”„๋กœํผํ‹ฐ(property)
    • [์ฝ”๋”ฉ์•™๋งˆ] ํ•จ์ˆ˜์„ ์–ธ๋ฌธ๊ณผ ํ•จ์ˆ˜ํ‘œํ˜„์‹, ๊ทธ๋ฆฌ๊ณ  ํ™”์‚ดํ‘œํ•จ์ˆ˜ (์ถ”๊ฐ€)
    • [๋“œ๋ฆผ์ฝ”๋”ฉ/์ฝ”๋”ฉ์•™๋งˆ] scope์™€ hoisting, ๊ทธ๋ฆฌ๊ณ  TDZ (์ถ”๊ฐ€)
    • [๋“œ๋ฆผ์ฝ”๋”ฉ] html์— js๋ฅผ ๋งํฌํ•˜๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•๋“ค
    Zoeeey
    Zoeeey
    ๊ธธ๊ฒŒ ์ƒ๊ฐํ•˜๊ณ  ์งง๊ฒŒ ๊ทธ๋ฆฌ๊ธฐ

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