๋ชฉ์ฐจ
JS์ Scope์ ๋ํด์ ์์๋ณด์!
3๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋๋ฐ ๋ค์๊ณผ ๊ฐ๋ค.
1. ์ ์ญ (Global) scope : ์ฝ๋ ์ ์ฒด ๋ฒ์
2. ํจ์ (Function) scope : ํจ์ ๋ด์์์ ๋ฒ์
3. ๋ธ๋ก (Block) scope : { } ์ค๊ดํธ๋ก ์ด๋ค์ง ๋ธ๋ก ๋ด์์์ ๋ฒ์
๋ค๋ฅธ ์ธ์ด์ ๋ฌ๋ฆฌ ๋ธ๋ก scope๊ฐ ์๋ค!
์ ์ญ scope
์ธ๋ถ์์ ์ ์ธ๋ ๋ณ์orํจ์
๋ชจ๋ ์ฝ๋์์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
์ด๋ ๋ธ๋ก๊น์ง๋ ์ ์ฉ์ด ๊ฐ๋ฅํ๋ค.
let a = 1;
{
console.log(a)
}
console.log(a)
>>>
1 //๋ธ๋ก ์์์ ์ถ๋ ฅ
1 //๋ธ๋ก ๋ฐ์์ ์ถ๋ ฅ
์ ์ญ๋ณ์๋ ๋ธ๋ก ์์ ๋ธ๋ก๊น์ง๋ ์ ์ฉ์ด ๋๋ค.
let a = 1;
{
let b = 2;
console.log(a)
{
console.log(a)
console.log(b)
}
}
console.log(a)
//console.log(b) //๋ธ๋ก ์์์ ์ ์ธ์ด ๋์๊ธฐ ๋๋ฌธ์ ์ค๋ฅ
>>>
1 //์์๋ธ๋ก์์ ์ถ๋ ฅ
1 //์์๋ธ๋ก์์ ์ถ๋ ฅ
2 //์์์์ ์ ์ธ๋ ๋ณ์ ์ถ๋ ฅ
1
if, for๋ฌธ ์ญ์ ๋ธ๋ก( { }๊ดํธ )์ ์ฌ์ฉํ๋ฏ๋ก
ํด๋น ๋ธ๋ก ๋ด์์ ์ ์ธ๋ ๋ณ์๋ค์
๋ธ๋กscope๊ฐ ์ ์ฉ์ด ๋๋ค.
let v1 = 1
if (v1 == 1){
let v2 = 2
console.log(v2)
}
// console.log(v2) ์ค๋ฅ๋ฐ์
>>>
2
ํจ์ ์ ์ธ๋ ๋น์ฐํ ๋ง์ฐฌ๊ฐ์ง!
{ }๊ดํธ๊ฐ ์์ผ๋ฉด ๋ธ๋ก์ด๋ค.
let v1 = function() {
let v2 = 2
console.log(v2)
}
v1()
//console.log(v2) ์ค๋ฅ๋ฐ์
>>>
2
์ ๋ฆฌํ๋ฉด
๋ธ๋ก ์์์ ์ ์ธ๋ ๋ณ์orํจ์๋
ํด๋น ๋ธ๋ก ๋ฐ์์ ์ ํจํ์ง ์๋ค.
var ํค์๋์ ํจ์ scope
var์ ํจ์ scope๋ฅผ ๊ฐ์ง๋ค.
(๋ธ๋ก ๋ด์์ ์ ์ํ ๊ฒ์ด ์ธ๋ถ์์๋ ์ ํจํจ.
์ด๋ฅผ ํจ์ scope๋ผ๊ณ ํ๋ค!)
{
{
var a = 1;
}
console.log(a)
}
์ด๋
ํจ์ ์์์ ์ ์ธํ var์
ํจ์ ๋ฐ์์ ์ ํจํ์ง ์๋ค.
data = 1;
function func(params) {
var d = 1;
console.log(data)
}
console.log(d) // ์ค๋ฅ๋ฐ์
'๐ | WEB DEV > Vanilla JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS_๋ฌธ๋ฒ (6)_promise ๋ฉ์๋(catch, finally, all, race ๋ฑ ) (0) | 2022.02.20 |
---|---|
JS_๋ฌธ๋ฒ (5)_๋๊ธฐ/๋น๋๊ธฐ ์ฒ๋ฆฌ (0) | 2022.02.18 |
JS_๋ฌธ๋ฒ (3)_ํธ์ด์คํ (0) | 2022.02.16 |
JS_๋ฌธ๋ฒ (2)_๊ตฌ์กฐ ๋ถํด ํ ๋น2, Rest-Spread ํ๋ผ๋ฏธํฐ (0) | 2022.02.15 |
JS_๋ฌธ๋ฒ (1)_์ผํญ์ฐ์ฐ์, ๊ตฌ์กฐ๋ถํด ํ ๋น1 (0) | 2022.02.15 |
๋๊ธ