數組的空元素empty表示空位, 它不是一種數據類型, 而是由於人為修改arr.length 或者寫入時多寫了逗號造成的.
var arr = [1,2,3,4,,,5]; arr.length; // 7 arr.length = 10; arr; // [1, 2, 3, 4, empty × 2, 5, empty × 3]
undefined是一種數據類型, 在數組中表示這個位置的值未定義, 但它仍然指向某個內存地址, 這個內存地址指向的是undefined;
var arr = [1,2,3,undefined,4,5]; arr.length; // 6
empty和undefined在操作數組時的主要區別在於:
使用數組的forEach()方法遍歷時會自動忽略空位, 而使用for循環則會將empty轉換為undefined並遍歷.