ES5中新增的部分方法
1. 陣列方法
1. forEach() 用來遍歷陣列
- 語法:有三個引數,引數一是陣列元素,引數二是陣列元素的索引,引數三是當前遍歷的陣列
// forEach 迭代(遍歷) 陣列
var arr = [1, 2, 3];
var sum = 0;
arr.forEach(function(value, index, array) {
console.log('每個陣列元素' + value);
console.log('每個陣列元素的索引號' + index);
console.log('陣列本身' + array);
sum += value;
})
console.log(sum);
執行結果

2. filter() 主要用于篩選陣列,會將滿足條件的陣列元素保存到一個新陣列中
- 語法:有三個引數,引數一是陣列元素,引數二是陣列元素的索引,引數三是當前遍歷的陣列
// filter 篩選陣列
var arr = [12, 66, 4, 88, 3, 7];
var newArr = arr.filter(function(value, index) {
// return value >= 20;
return value % 2 === 0;
});
console.log(newArr);
執行結果

3. some() 查找滿足條件的元素是否存在,回傳的是一個布林值,如果查找到第一個滿足條件的元素就終止回圈
- 語法:有三個引數,引數一是陣列元素,引數二是陣列元素的索引,引數三是當前遍歷的陣列
// some 查找陣列中是否有滿足條件的元素
var arr1 = ['red', 'pink', 'blue'];
var flag1 = arr1.some(function(value) {
return value == 'pink';
});
console.log(flag1);
執行結果

陣列的 forEach、some、filter 區別
- forEach一般應用于陣列的遍歷,沒有回傳值
- some一般應用于查詢陣列中唯一的元素, 用some方法更合適,遇到 return true 就是終止遍歷 迭代效率更高,回傳值是布林值
- filter一般應用于資料的篩選,遇到return不會終止迭代,回傳值是一個新陣列
2. 字串方法
trim() 方法從一個字串的兩端洗掉空白字符
trim() 方法并不影響原字串本身,它回傳的是一個新的字串
// trim 方法去除字串兩側空格
var str = ' an dy ';
console.log(str);
var str1 = str.trim();
console.log(str1);
執行結果

3. 物件方法
1. Object.keys() 方法回傳一個物件的所有的屬性名并保存到一個陣列中
// 用于獲取物件自身所有的屬性
var obj = {
id: 1,
pname: '小米',
price: 1999,
num: 2000
};
var arr = Object.keys(obj);
console.log(arr);
arr.forEach(function(value) {
console.log(value);
})
執行結果

2. Object.defineProperty() 定義物件中新屬性或修改原屬性
引數設定:
- 引數一是當前設定的物件
- 引數二是需定義或修改的屬性的名字
- 引數三是一個物件,物件中有多個屬性
- 屬性一是value:: 設定屬性的值
- 屬性二是writable: false/true;如果值為false 不允許修改這個屬性值 默認值也是false
- 屬性三是enumerable: false/true;如果值為false 則不允許遍歷, 默認的值是 false
- 屬性四是configurable: false/true;如果為false 則不允許洗掉這個屬性 不允許在修改第三個引數里面的特性 默認為false
// Object.defineProperty() 定義新屬性或修改原有的屬性
var obj = {
id: 1,
pname: '小米',
price: 1999
};
Object.defineProperty(obj, 'num', {
value: 1000,
enumerable: true
});
console.log(obj);
Object.defineProperty(obj, 'price', {
value: 9.9
});
console.log(obj);
Object.defineProperty(obj, 'id', {
// 如果值為false 不允許修改這個屬性值 默認值也是false
writable: false,
});
obj.id = 2;
console.log(obj);
Object.defineProperty(obj, 'address', {
value: '中國山東藍翔技校xx單元',
// 如果值為false 不允許修改這個屬性值 默認值也是false
writable: false,
// enumerable 如果值為false 則不允許遍歷, 默認的值是 false
enumerable: false,
// configurable 如果為false 則不允許洗掉這個屬性 不允許在修改第三個引數里面的特性 默認為false
configurable: false
});
console.log(obj);
console.log(Object.keys(obj));
delete obj.address;
console.log(obj);
delete obj.pname;
console.log(obj);
執行結果

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/125085.html
標籤:其他
