๐ฝ 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 |