์ ์ญ ๋ณ์์ ๋ฌธ์ ์
๋ณ์์ ์๋ช ์ฃผ๊ธฐ
- ์ ์ญ ๋ณ์์ ์๋ช ์ฃผ๊ธฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ช ์ฃผ๊ธฐ์ ๊ฐ๋ค
- ์ง์ญ ๋ณ์์ ์๋ช ์ฃผ๊ธฐ๋ ํจ์์ ์๋ช ์ฃผ๊ธฐ์ ์ผ์นํ๋ค.
- ๋จ, ๋๊ตฐ๊ฐ ์ค์ฝํ๋ฅผ ์ฐธ์กฐํ๊ณ ์์ผ๋ฉด ์ค์ฝํ๋ ์๋ฉธํ์ง ์๊ณ ์์กด (ํด๋ก์ ๊ฐ๋ )
- ํธ์ด์คํ ์ ์ค์ฝํ ๋จ์๋ก ๋์ํ๋ค.
var x = 'global';
function foo() {
console.log(x); // undefined
var x = 'local';
}
foo();
console.log(x); // global
์ ์ญ ๊ฐ์ฒด
- ์ ์ญ ๊ฐ์ฒด๋ ์ฝ๋๊ฐ ์คํ ๋๊ธฐ ์ด์ ๋จ๊ณ์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ํด ์ด๋ค ๊ฐ์ฒด ๋ณด๋ค๋ ๋จผ์ ์์ฑ๋๋ ํน์ํ ๊ฐ์ฒด
- ๋ธ๋ผ์ฐ์ ์์๋ window๊ฐ ์ ์ญ๊ฐ์ฒด, node.js์์๋ global ์ด ์ ์ญ๊ฐ์ฒด
- var ํค์๋๋ก ์ ์ธํ ์ ์ญ ๋ณ์์ ์๋ช ์ฃผ๊ธฐ๋ ์ ์ญ ๊ฐ์ฒด์ ์๋ช ์ฃผ๊ธฐ์ ์ผ์นํ๋ค.
์ ์ญ ๋ณ์์ ๋ฌธ์ ์
- ์๋ฌต์ ๊ฒฐํฉ
- ๊ธด ์๋ช ์ฃผ๊ธฐ
- ์ค์ฝํ ์ฒด์ธ ์์์ ์ข
์ ์ ์กด์ฌ
์ ์ญ ๋ณ์์ ๊ฒ์ ์๋๊ฐ ๊ฐ์ฅ ๋๋ฆฌ๋ค๋ ๊ฒ์ ์๋ฏธ
- ๋ค์์คํ์ด์ค ์ค์ผ
ํ์ผ์ด ๋ถ๋ฆฌ ๋์ด์์ด๋ ์ ์ญ ์ค์ฝํ๋ฅผ ๊ณต์ ํ ์ ์๋ค.
์ ์ฉ ๋ณ์ ์ฌ์ฉ ์ต์
- ์ง์ญ ๋ณ์ ์ฌ์ฉ ๊ถ์ฅ, ์ค์ฝํ๋ ์ข์ ์๋ก ์ข๋ค.
- ์ฆ์์คํ ํจ์
- ๋ชจ๋ ์ฝ๋๋ฅผ ์ฆ์ ์คํ ํจ์๋ก ๊ฐ์ธ๋ฉด ๋ชจ๋ ๋ณ์๋ ์ฆ์ ์คํ ํจ์์ ์ง์ญ ๋ณ์๊ฐ ๋๋ค.
(function () {
var foo = 10; // ์ฆ์ ์คํ ํจ์์ ์ง์ญ ๋ณ์
// ...
}());
console.log(foo); // ReferenceError: foo is not defined
- ๋ค์์คํ์ด์ค ๊ฐ์ฒด
- ์ ์ญ์ ๋ค์์คํ์ด์ค ์ญํ ์ ๋ด๋นํ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์ ์ญ๋ณ์ ์ฒ๋ผ ์ฌ์ฉํ๊ณ ์ถ์ ๋ณ์๋ฅผ ํ๋กํผํฐ๋ก ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
- ๋ชจ๋ ํจํด
- ๊ด๋ จ ์๋ ๋ณ์์ ํจ์๋ฅผ ๋ชจ์์ ์ฆ์ ์คํ ํจ์๋ก ๊ฐ์ธ ํ๋์ ๋ชจ๋์ ๋ง๋๋ ๋ฐฉ๋ฒ
- ํด๋ก์ ๊ธฐ๋ฐ์ผ๋ก ๋์
- ์ ๋ณด ์๋์ ๊ตฌํํ๊ธฐ ์ํด ์ฌ์ฉ
- es6 ๋ชจ๋
- es6 ๋ชจ๋์ ํ์ผ ์์ฒด์ ๋ ์์ ์ธ ๋ชจ๋ ์ค์ฝํ๋ฅผ ์ ๊ณต
- script ํ๊ทธ์
type=module
์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ์ถ๊ฐํ๋ฉด ๋ชจ๋๋ก ๋์
'javascript > ๐ study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[3์ฃผ์ฐจ ์คํฐ๋] 16์ฅ ํ๋กํผํฐ, ์ดํธ๋ฆฌ๋ทฐํธ (0) | 2022.02.14 |
---|---|
[2์ฃผ์ฐจ ์คํฐ๋]15์ฅ-let const ๋ธ๋ก ์ค์ฝํ (0) | 2022.02.06 |
[2์ฃผ์ฐจ ์คํฐ๋]13์ฅ- ์ค์ฝํ (0) | 2022.02.06 |
[2์ฃผ์ฐจ ์คํฐ๋]12์ฅ-ํจ์ (0) | 2022.02.06 |
[2์ฃผ์ฐจ ์คํฐ๋]11์ฅ-์์๊ฐ๊ณผ ๊ฐ์ฒด์ ๋น๊ต (0) | 2022.02.06 |
๋๊ธ