πstrict mode ?
μλ°μ€ν¬λ¦½νΈ μΈμ΄μ λ¬Έλ²μ μ’ λ μ격ν μ μ©νμ¬ μ€λ₯λ₯Ό λ°μμν¬ κ°λ₯μ±μ΄ λκ±°λ μλ°μ€ν¬λ¦½νΈ μμ§μ μ΅μ ν μμ μ λ¬Έμ λ₯Ό μΌμΌν¬ μ μλ μ½λμ λν΄ λͺ μμ μΈ μλ¬λ₯Ό λ°μμν¨λ€ !ESLint
κ°μ λ¦°νΈ λꡬλ₯Ό μ¬μ©ν΄λstrict mode
μ μ μ¬ν ν¨κ³Όλ₯Ό κ°μ§ μ μλ€.
ESLint ?
strict mode
κ° μ ννλ μ€λ₯λ λ¬Όλ‘ μ½λ© 컨벀μ
μ μ€μ νμΌ ννλ‘ μ μνκ³ κ°μ ν μ μκΈ° λλ¬Έμ λμ± κ°λ ₯ν ν¨κ³Όλ₯Ό λ³Ό μ μλ€.
βμ묡μ μ μ( implicit global )
μ μΈλμ§ μκ³ ν¨μ λ΄μμ μ¬μ©λ λ³μκ° μ묡μ μΌλ‘ μ μ κ°μ²΄μ νλ‘νΌν°λ₯Ό λμ μμ±νλ κ²½μ°λ₯Ό μ묡μ μ μμ΄λΌκ³ νλ€. κ°λ°μμ μλμλ μκ΄μμ΄ λ°μν μ묡μ μ μμ μ€λ₯λ₯Ό λ°μμν€λ μμΈμ΄ λ κ°λ₯μ±μ΄ ν¬λ―λ‘, λ°λμlet
,const
ν€μλλ₯Ό μ¬μ©νμ¬ λ³μλ₯Ό μ μΈν λ€μ μ¬μ©νλλ‘ νλ€.
strict mode ?
use strict;
λ₯Ό μΆκ°νλ©΄ ν΄λΉ ν¨μμ μ€μ²© ν¨μμ μ μ©λλ€.use strict;
λ₯Ό μΆκ°νλ©΄ ν΄λΉ μ€ν¬λ¦½νΈ μ 체μ μ μ©λλ€.// βuse strictβ; μ μμ μ λμ μΆκ°ν κ²½μ°
const number = () => {
// βuse strictβ; ν¨μ λͺΈμ²΄μ μ λμ μΆκ°ν κ²½μ°
x = 100;
}
number();
strict modeκ° λ°μμν€λ μλ¬
ReferenceError
λ₯Ό λ°μμν¨λ€.delete
μ°μ°μλ‘ λ³μ, ν¨μ, 맀κ°λ³μλ₯Ό μμ μ SyntaxError
λ₯Ό λ°μμν¨λ€.SyntaxError
λ₯Ό λ°μμν¨λ€.with
λ¬Έμ μ¬μ©: SyntaxError
λ₯Ό λ°μμν¨λ€.strict mode μ μ©μ μν λ³ν
this
: ν¨μλ₯Ό μΌλ° ν¨μλ‘μ νΈμΆνλ©΄ this
μ undefined
κ° λ°μΈλ© λλ€.arguments
κ°μ²΄: 맀κ°λ³μμ μ λ¬λ μΈμλ₯Ό μ¬ν λΉν΄λ `arguments κ°μ²΄μ λ°μλμ§ μλλ€.