<aside> ๐ก ๊ฐ์ด ์กด์ฌํ์ง ์์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์๋์ผ๋ก ๋ฐํํด์ฃผ๋ ๊ฐ์ด๋ค.
</aside>
์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ค์๊ณผ ๊ฐ์ ์ํฉ์์ undefined๋ฅผ ๋ฐํํ๋ค.
์ฆ, ์ฌ์ฉ์๊ฐ ๊ฐ์ ์ง์ ํด ์ค ๊ฒ์ด๋ผ๊ณ ์์ํ์์ง๋ง ๊ทธ๋ ๊ฒ ๋์ง ์์์ ๋ ์๋์ผ๋ก undefined๋ฅผ ์ค๋ค.
์ค์ ๋ก๋ undefined๋ฅผ ์๋์ผ๋ก ํ ๋นํด์ค๋ค๊ณ ์๊ฐํ๊ธฐ ์ฝ์ง๋ง ์ฌ์ค์ ์๋ฌด๊ฒ๋ ํ ๋นํ์ง ์๊ณ
var a
console.log(a) // undefined
var obj = { a: 1 }
console.log(obj.a) // 1
console.log(obj.b) // undefined
console.log(b) // ReferenceError: b is not defined
var func = function() {}
var c = func()
console.log(c) // undefined
๊ฐ์ ๋์ ํ์ง ์์ ๋ฐฐ์ด์ ๊ฒฝ์ฐ์๋ ์กฐ๊ธ ํน์ดํ๋ค.
var arr1 = []
arr1.length = 3
console.log(arr1) // [ <3 empty items> ]
var arr2 = new Array(3)
console.log(arr2) // [ <3 empty items> ]
var arr3 = [undefined, undefined, undefined]
console.log(arr3) // [undefined, undefined, undefined]
<aside> ๐ก ๋น ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๋๋ฆฌ๊ฑฐ๋ new Array()๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ๋ง๋ค์์ ์์๋ undefined๋ ํ ๋น๋์ง ์๋๋ค. ์ฆ, ๋น์ด ์๋ ์์์ undefined๋ฅผ ํ ๋นํ ์์๋ ์์ ๋ค๋ฅด๋ค.
</aside>
var arr1 = [undefined, 1]
var arr2 = []
arr2[1] = 1 // [empty, 1]
console.log(arr2[0]) // undefined
arr1.forEach(function(data, index) {console.log(data, index)})
// undefined 0 / 1 1
arr2.forEach(function(data, index) {console.log(data, index)})
// 1 1
โ๋น์ด ์๋ ์์โ์ ๊ฒฝ์ฐ ๋ฐฐ์ด ๋ฉ์๋๋ค์ ์ํ ๋์์์ ์ ์ธ๋๋ค. ๋น์ฐํ ์๋ฌด๊ฒ๋ ์๋ ์์๋ ์ํํ ์ ์์ผ๋๊น.