Input + Output = True
javascript 'use strict'๋? ๋ณธ๋ฌธ
๐Javascript] 'use strict'
โ ์๊ฒฉ๋ชจ๋ (use strict)
'use strict'๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์๊ฒฉ๋ชจ๋๋ฅผ ์คํํ๋ค
์๊ฒฉ๋ชจ๋๋ ์ ์ธํ์ง ์์ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ ๋ฑ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์๊ฒฉํ ๊ธฐ์ค์ด ์ ์ฉ๋๋ ๊ฒ์ ๋งํ๋ค
์๊ฒฉ๋ชจ๋์ ์ฌ์ฉ ์ฌ๋ถ์ ๋ฐ๋ฅธ ์ฐจ์ด์ ์ ์ดํด๋ณด์
function test() {
x = 5
}
test()
console.log(x) // 5
์ ์ธ๋์ง ์์ ๋ณ์ x๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์๋ฌ๊ฐ ์ถ๋ ฅ๋ ๊ฒ ๊ฐ์ง๋ง ์คํํด๋ณด๋ฉด ์ ์ ์๋ํ๋ค
์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์๋ฌต์ ์ผ๋ก ์ ์ญ ๋ณ์๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ ์ ์๋ํ๊ฒ ๋๋ค๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๋์ ์ฝ๋๋ true๊ฐ ๋๋ค
function test() {
x = 5
}
test()
console.log(x) // 5
console.log(window.x === x) // true
'use strict'๋ฅผ ์ ์ฉํ๋ค๋ฉด ์๋์ ์์ ์ฒ๋ผ x๊ฐ ์ ์๋์ง ์์๋ค ๋ผ๋ ์๋ฌ๊ฐ ์ถ๋ ฅ๋๋ค
'use strict'
function test() {
x = 5
}
test()
console.log(x) // Uncaught ReferenceError: x is not defined
'use strict'๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ์ต์๋จ์ ๋ช
์ํ๋ฉด ์คํฌ๋ฆฝํธ ์ ์ฒด์ ์๊ฒฉ๋ชจ๋๊ฐ ์ ์ฉ๋๊ณ
ํจ์๋ด์ ๋ช
์ํ๋ฉด ํด๋น ํจ์ ๋ฐ ์ค์ฒฉ ํจ์์ ์๊ฒฉ๋ชจ๋๊ฐ ์ ์ฉ๋๋ค
์๊ฒฉ๋ชจ๋๊ฐ ์ ์ฉ๋๋ ๋ฌธ๋ฒ์ ์๋์ ํ๋ฅผ ํตํด ์ฐธ๊ณ ํ ์ ์๋ค
๋์ | ์ ํ ์ฌํญ |
๋ณ์ | ์ ์ธ๋์ง ์์ ๋ณ์๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์์ |
eval() ํจ์ ๋ด์์ ์ ์ธ๋ ๋ณ์๋ ์ธ๋ถ์์ ์ฌ์ฉํ ์ ์์ | |
ํ๋กํผํฐ | ์ฝ๊ธฐ ์ ์ฉ ํ๋กํผํฐ์๋ ๋์ ํ ์ ์์ |
ํ ํ๋กํผํฐ๋ฅผ ์ฌ๋ฌ ๋ฒ ์ ์ํ ์ ์์ | |
ํจ์ | ํจ์๋ฅผ ๊ตฌ๋ฌธ์ด๋ ๋ธ๋ก ๋ด์์ ์ ์ธํ ์ ์์ |
๋งค๊ฐ๋ณ์ | ๋งค๊ฐ๋ณ์์ ์ด๋ฆ์ด ์ค๋ณต๋์ด์๋ ์๋จ |
arguments ๊ฐ์ฒด์ ์์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ | |
๋ฌธ์์ด | ๋ฌธ์์ด "eval"๊ณผ "arguments"๋ ์ฌ์ฉํ ์ ์์ |
8์ง์ | ์ซ์ ๋ฆฌํฐ๋ด์ 8์ง์ ๊ฐ์ ๋์ ํ ์ ์์ |
this | this ํฌ์ธํฐ๊ฐ ๊ฐ๋ฅดํค๋ ๊ฐ์ด null์ด๋ undefined์ธ ๊ฒฝ์ฐ ์ ์ญ ๊ฐ์ฒด๋ก ๋ณํ๋์ง ์์ |
delete | delete ํค์๋๋ฅผ ์ฌ์ฉํ ์ ์์ |
with | with ๋ฌธ์ ์ฌ์ฉํ ์ ์์ |
์์ฝ์ด | ๋ค์ ์์ฝ์ด๋ค์ ์ฌ์ฉํ ์ ์์ (implements, interface, let, package, private, protected, public, static, yield) |
์ฐธ๊ณ
'๐จFrontEnd > Javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋ฐ์คํฌ๋ฆฝํธ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ - ์ฝ ์คํ, ๋ฉ๋ชจ๋ฆฌ ํ (0) | 2023.07.16 |
---|---|
Javascript] ์ค์ฝํ(์ค์ฝํ, ์ค์ฝํ์ฒด์ธ, ๋ ์์ปฌ ์ค์ฝํ) (0) | 2023.05.10 |
Javascript] ์๋ฐ์คํฌ๋ฆฝํธ this (0) | 2023.03.31 |
parameter์ argument์ ์ฐจ์ด (0) | 2023.03.28 |
์๋ฐ์คํฌ๋ฆฝํธ ํธ์ด์คํ ๊ณผ TDZ (0) | 2023.03.28 |