๐ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ต์ฌ) 20์ฅ. strict mode
01. strict mode๋?
ES5๋ถํฐ ์ถ๊ฐ๋ ๊ฒ์ผ๋ก, ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด์ ๋ฌธ๋ฒ์ ์ข ๋ ์๊ฒฉํ๊ฒ ์ ์ฉํ์ฌ, ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ ์ฝ๋์ ๋ํด ๋ช ์์ ์๋ฌ๋ฅผ ๋ฐ์์ํจ๋ค.
02. strict mode์ ์ ์ฉ
strict mode๋ฅผ ์ ์ฉํ๋ ค๋ฉด,์ ์ญ์ ์ ๋/ํจ์ ๋ชธ์ฒด์ ์ ๋์ 'use strict';๋ฅผ ์ถ๊ฐํ๋ค.
03. ์ ์ญ์ strict mode๋ฅผ ์ ์ฉํ๋ ๊ฒ์ ํผํ์
์ ์ญ์ ์ ์ฉํ strict mode๋ ์คํฌ๋ฆฝํธ ๋จ์๋ก ์ ์ฉ
โก๏ธ ํด๋น ์คํฌ๋ฆฝํธ์ ํ์ ๋์ด ์ ์ฉ
๐ฅ strict mode ์คํฌ๋ฆฝํธ์ non-strict mode ์คํฌ๋ฆฝํธ๋ฅผ ํผ์ฉํ ์ ์๋ ์ค๋ฅ๋ฅผ ๋ฐ์์ํจ๋ค.
04. ํจ์ ๋จ์๋ก strict mode๋ฅผ ์ ์ฉํ๋ ๊ฒ๋ ํผํ์
์ฆ์ ์คํ ํจ์๋ก ๊ฐ์ผ ์คํฌ๋ฆฝํธ ๋จ์๋ก ์ ์ฉํ๋๋ก ํ์!
05. strict mode๊ฐ ๋ฐ์์ํค๋ ์๋ฌ
strict mode๋ฅผ ์ ์ฉํ์ ๋ ๋ฐ์ํ๋ ์๋ฌ๋ค์ ๊ฐ๋จํ๊ฒ ์ดํด๋ณด์.
1) ์๋ฌต์ ์ ์ญ
์ ์ธํ์ง ์์ ๋ณ์ ์ฐธ์กฐ
โก๏ธ ReferenceError ๋ฐ์
2) ๋ณ์, ํจ์, ๋งค๊ฐ๋ณ์์ ์ญ์
delete ์ฐ์ฐ์๋ก ๋ณ์, ํจ์, ๋งค๊ฐ๋ณ์ ์ญ์ โก๏ธ SyntaxError ๋ฐ์
3) ๋งค๊ฐ๋ณ์ ์ด๋ฆ์ ์ค๋ณต
์ค๋ณต๋ ๋งค๊ฐ๋ณ์ ์ด๋ฆ ์ฌ์ฉ
โก๏ธ SystaxError ๋ฐ์
4) with ๋ฌธ์ ์ฌ์ฉ
with ๋ฌธ ์ฌ์ฉโก๏ธ SystaxError ๋ฐ์
06. strict mode ์ ์ฉ์ ์ํ ๋ณํ
1) ์ผ๋ฐ ํจ์์ this
strict mode์์ ํจ์๋ฅผ ์ผ๋ฐ ํจ์๋ก์ ํธ์ถํ๋ฉด this์ undefined๊ฐ ๋ฐ์ธ๋ฉ๋๋ค.
2) arguments ๊ฐ์ฒด
strict mode์์๋ ๋งค๊ฐ๋ณ์์ ์ ๋ฌ๋ ์ธ์๋ฅผ ์ฌํ ๋นํ์ฌ ๋ณ๊ฒฝํด๋ arguments ๊ฐ์ฒด์ ๋ฐ์๋์ง ์๋๋ค.
๐ ์ฐธ๊ณ ์๋ฃ
