์ ์ธ๋ ๋ณ์์ ๊ฐ์ด "์์"์ ๋ช ์์ ์ผ๋ก ๋ํ๋ผ ๋ ์ฌ์ฉํ๋ ๊ฐ
var tmp = null;
console.log(tmp === null); // true
console.log(typeof tmp === 'object'); // true
===
๋๋ฑ ์ฐ์ฐ์๋ฅผ ํตํด ์ฒดํฌํ๋ฉด ๋๋ค. ์ ์ํด์ผํ ์ ์ null
์ typeof
์ฌ์ฉํ๋ฉด object
๊ฐ ๋์จ๋ค.
๋ณ์ ์ ์ธ๋ง ํ๊ณ ๊ฐ์ด ํ ๋น๋์ง ์์์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์ ์ํ ์ด๊ธฐ๊ฐ
var tmp;
console.log(tmp); // undefined
console.log(tmp === undefined); // true
console.log(typeof tmp === 'undefined'); // true
===
๋๋ฑ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ typeof
๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ ๊ทผ ๊ฐ๋ฅํ ์ค์ฝํ ์์์ ์ ์ธ์กฐ์ฐจ ๋์ง ์์ ์ํ
// ๊ฐ๋ฐ์๋๊ตฌ์์ ์๋ ์ฝ๋ ์
๋ ฅํ๋ฉด ํ์ธ ๊ฐ๋ฅํ๋ค.
// ๋์จํ ๋ชจ๋ (๋ํดํธ)
tmp = "testString";
window.tmp; // "testString"
// ์๊ฒฉ ๋ชจ๋
"use strict"
tmp = "testString"; // ์๋ฌ: Uncaught ReferenceError: tmp is not defined
use strict
๋ช
๋ น์ด๋ฅผ ํตํด ์๊ฒฉ๋ชจ๋ ๋ก ์ง์
ํ์ง ์๋ ์ด์ ๋ง๋๊ธฐ ํ๋ค๋ค. ์๊ฒฉ๋ชจ๋๊ฐ ์๋ ๋์จํ ๋ชจ๋(๋ํดํธ) ํ๊ฒฝ์์ ์ ์ธ๋์ง ์์ ๋ณ์์ ๊ฐ์ ํ ๋นํ๋ฉด ์๋์ผ๋ก global ๋ณ์ ์ทจ๊ธํ๋ค.