π½ 20.1 strict modeλ?
μ μΈνμ§ μμ λ³μμ κ²½μ° ReferenceErrorκ° μκΈΈ κ² κ°μ§λ§, μ¬μ€ μλ.
JSκ° μ묡μ μΌλ‘ μ μ κ°μ²΄μ λ³μ-> νλ‘νΌν°λ₯Ό λμ μΌλ‘ μμ±ν¨.
=> μ묡μ μ μ
μ묡μ μ μμ μ€λ₯ λ°μμ μμΈμ΄ λ νλ₯ μ΄ λμ.
κ·Έλ¬λ λ³μ μ μΈ ν€μλλ₯Ό κΌ κ°μ΄ μ¬μ©ν΄μΌν¨.
νμ§λ§ μ€μλ μΈμ λ λ°μνλλ° -> μ΄λ° μ μ¬μ μ€λ₯λ₯Ό λ°μμν€κΈ° μ΄λ €μ΄ κ°λ° νκ²½μ λ§λλκ² λ κ·Όλ³Έμ μΈ ν΄κ²°μ± μ.
strict mode (μ격 λͺ¨λ)
- ES5 λΆν° μΆκ°λ¨.
- JS μ λ¬Έλ²μ μ’ λ μ격ν μ μ©
-> μ€λ₯λ₯Ό λ°μμν¬ κ°λ₯μ±μ΄ λκ±°λ,
-> JS μμ§μ μ΅μ ν λ¬Έμ μ μμ μ μΌμΌν¬ μ μλ μ½λμ λν΄
=> λͺ μμ μΈ μλ¬λ₯Ό λ°μμν΄.
ESLint
- strict mode μ μ μ¬ν ν¨κ³Όλ₯Ό μ»μ μ μμ.
- λ¦°νΈλꡬλ μ μ λΆμκ³Ό κ°μ κΈ°λ₯μ ν΅ν΄ μμ€μ½λλ₯Ό μ€ννκΈ° μ , μ€μΊ
=> λ¬Έλ²μ μ€λ₯ λΏ μλλΌ μ μ¬μ μ€λ₯κΉμ§ μ°Ύμλ΄κ³ , μ€λ₯μ μμΈμ 리ν¬ν ν΄μ€.
- strict mode κ° μ ννλ μ€λ₯ + μ½λ© 컨벀μ μ μ€μ νμΌμ ννλ‘ μ μνκ³ κ°μ ν μ μμ.
- strict mode κ° λ κ°λ ₯ν¨.
π½ 20.2 strict mode μ μ μ©
μ μμ μ λ (맨 μ) νΉμ ν¨μμ μ λμ 'use strict'; μΆκ°
μ μ -> μ€ν¬λ¦½νΈ μ 체μ strict mode μ μ©λ¨
ν¨μ -> ν΄λΉ ν¨μμ μ€μ²© ν¨μμ μ μ©λ¨.
맨 μμ μμ°λ©΄ λ§μμ΄ λμ μν¨.
π½ 20.3 μ μμ strict mode λ₯Ό μ μ©νλ κ²μ νΌνμ
μ€ν¬λ¦½νΈ λ¨μλ‘ μ μ©λλλ°, λ€λ₯Έ μ€ν¬λ¦½νΈμλ μν₯μ μ£Όμ§ μμ.
κ·ΈλΌ μ μ©ν μ€ν¬λ¦½νΈλ μλ μ€ν¬λ¦½νΈλ νΌμ¬λ μλ μκ³ , μ΄λ‘ μΈν΄ μ€λ₯κ° μκΈΈ μλ μμ.
π½ 20.4 ν¨μ λ¨μλ‘ strict mode λ₯Ό μ μ©νλ κ²μ νΌνμ
λͺ¨λ ν¨μμ μΌμΌμ΄ μ μ©νλ κ²μ λ§€μ° λ²κ±°λ‘μ.
μ μ©λ ν¨μκ° μ°Έμ‘°ν μΈλΆ 컨ν μ€νΈμ strict mode μ μ©νμ§ μμΌλ©΄ μ΄κ²λ λ¬Έμ κ° λ¨.
π½ 20.5 strict mode κ° λ°μμν€λ μλ¬
20.5.1 μ묡μ μ μ
μ μΈνμ§ μμ λ³μλ₯Ό μ°Έμ‘°νλ©΄ ReferenceError λ°μ
20.5.2 λ³μ, ν¨μ, 맀κ°λ³μμ μμ
delete λ‘ μμ νλ©΄ SyntaxError λ°μ
(μ격λͺ¨λμμ μ¬μ©νλ©΄ μλλ€κ³ μλ¬ λΈ)
20.5.3 맀κ°λ³μ μ΄λ¦μ μ€λ³΅
SyntaxError λΈ.
20.5.4 with λ¬Έμ μ¬μ©
with λ¬Έμ μ λ¬λ κ°μ²΄λ₯Ό μ€μ½ν 체μΈμ μΆκ°ν¨. SyntaxError λΈ.
π½ 20.6 strict mode μ μ©μ μν λ³ν
20.6.1 μΌλ° ν¨μμ this
ν¨μλ₯Ό μΌλ°ν¨μλ‘ νΈμΆνλ©΄ thisμ undefined κ° λ°μΈλ©λ¨.
μμ±μ ν¨μ μλλΌμ νμμκΈ° λλ¬Έ.
μλ¬λ λ°μνμ§ μμ.
20.6.2 arguments κ°μ²΄
맀κ°λ³μμ μ λ¬λ μΈμλ₯Ό μ¬ν λΉν΄μ λ³κ²½ν΄λ arguments κ°μ²΄μ λ°μλμ§ μμ.
'λ μ λͺ©λ‘ > λͺ¨λ₯λ€ Modern JS Deep Dive' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λͺ¨λ₯λ€] 22μ₯ this (0) | 2023.05.14 |
---|---|
[λͺ¨λ₯λ€] 21μ₯ λΉνΈμΈ κ°μ²΄ (0) | 2023.05.14 |
[λͺ¨λ₯λ€] 19μ₯ (2) νλ‘ν νμ (0) | 2023.05.13 |
[λͺ¨λ₯λ€] λ²μΈ ) μ°λ¦¬λ μ νλ‘ν νμ μ λν΄μ μμμΌν κΉ? (0) | 2023.05.10 |
[λͺ¨λ₯λ€] 18μ₯ ν¨μμ μΌκΈ κ°μ²΄ (0) | 2023.05.10 |