陣列是JavaScript中的基本數據結構,它是一個用於存儲多個任何類型的值的有序集合,它有四個常見的方法:push、pop、shift 和 unshift。
1.'push()'方法:將一個或多個元素添加到陣列的末尾。
特性:
let arr = [1, 2, 3];
arr.push(4); // arr = [1, 2, 3, 4]
arr.push(5, 6); // arr = [1, 2, 3, 4, 5, 6]
2.'pop()'方法:用於刪除陣列的最後一個元素。
特性:
let arr = [1, 2, 3];
let lastElement = arr.pop(); // arr = [1, 2], lastElement = 3
3.'unshift()'方法:在陣列的開頭添加一個或多個元素。
特性:
let arr = [1, 2, 3];
arr.unshift(0); // arr = [0, 1, 2, 3]
arr.unshift(-2, -1); // arr = [-2, -1, 0, 1, 2, 3]
4.'shift()'方法:用於刪除陣列的第一個元素。
特性:
let arr = [1, 2, 3];
let firstElement = arr.shift(); // arr = [2, 3], firstElement = 1
** 注意:
1.以上所有方法都是破壞性操作,它們會直接修改原始陣列。如果需要保留原始數據,則要先複製陣列再進行操作。
2.性能差異:對於大陣列來說,'unshift()'和'shift()'會比'push()'和'pop()'慢,因為它們需要重新調整所有元素的索引。在操作非常大的陣列時,這種性能差異會非常明顯。
對象是JavaScript中用於存儲鍵值對的集合。物件是無序的,鍵可以是字符串或'Symbol',值則可以是任何類型。
1.對象的創建與操作機制:
let person = {
name: 'John',
age: 30
};
//或是
let person = new Object();
person.name = 'John';
person.age = 30;
2.訪問屬性:
console.log(person.name); // 'John'
//或是
console.log(person['name']); // 'John'
3.修改和添加屬性:
person.age = 31; // 修改 age 屬性
person.gender = 'male'; // 添加新屬性 gender
4.刪除屬性:
delete person.age; // 刪除 age 屬性
5.檢查屬性:
console.log('name' in person); // true
console.log(person.hasOwnProperty('name')); // true
6.遍歷對象:
for (let key in person) {
console.log(key, person[key]);
}
console.log(Object.keys(person)); // ['name', 'gender']
console.log(Object.values(person)); // ['John', 'male']
console.log(Object.entries(person)); // [['name', 'John'], ['gender', 'male']]
let obj1 = { name: 'John' };
let obj2 = obj1;
obj2.name = 'Doe';
console.log(obj1.name); // 'Doe'
鍵總是字符串:即使使用數字或其他類型作為鍵,JavaScript會自動將它們轉換為字符串。ES6中引入的Symbol 是唯一不會被轉換為字符串的鍵類型。
動態性:JavaScript中的物件是動態的,可以隨時添加、修改或刪除屬性。
對象不保證屬性的順序