ES5中的新增方法
数组方法
forEach 遍历数组
<script>
var arr = [1, 2, 3];
arr.forEach(function (value, index, array) {
console.log("每个数组元素" + value);
console.log("每个数组元素的索引号" + index);
console.log("数组本身" + array);
});
</script>
filter 筛选数组
----直接返回一个新数组
var arr = [1, 2, 43, 44, 6, 7];
var newArr = arr.filter(function (value, index) {
return value >= 20;
//return value %2 == 0; //----返回偶数
});
console.log(newArr);
some
----查找数组中是否有满足条件的元素,返回值是布尔值,查到为true
----如果找到第一个满足条件的元素,终止循环,不再查找,因此适用于查询数组中唯一的元素
----在some方法里加上return true ,终止遍历,是迭代的效率更高
<script>
var arr = [1, 2, 43, 44, 6, 7];
var flag = arr.some(function (value) {
return value >= 20;
});
console.log(flag);
</script>
字符串方法
trim去除字符串两侧空格
var str = ' andy ';
var str2 = str.trim();
判断输入框内是否为空
var str = input.value.trim();
btn.onclick = function() {
if (str == '') {
alert('hello');
} else {
div.innerHTML = str;
}
}
对象方法
Object.keys()----返回由属性名组成的数组
<script>
// 用于获取对象自身所有的属性
var obj = {
id: 1,
pname: '小米',
price: 1999,
num: 2000
};
var arr = Object.keys(obj);
console.log(arr);
arr.forEach(function(value) {
console.log(value);
})
</script>
Object.defineProperty()----定义新属性或修改原有的属性
Object.defineProperty(obj,prop--属性,descriptor)
参数—descriptor:
- 以对象形式书写{}
- value 设置属性的值,默认为undefined
- writable 值是否可以重写 默认为false
- enumerable 目标属性是否允许被遍历 默认为false
- configurable 目标属性是否可以被删除 默认为false
var obj = {
id: 1,
pname: '小米',
price: 1999
};
// 1. 以前的对象添加和修改属性的方式
// obj.num = 1000;
// obj.price = 99;
// console.log(obj);
// 2. Object.defineProperty() 定义新属性或修改原有的属性
Object.defineProperty(obj, 'num', {
value: 1000,
enumerable: true
});
console.log(obj);
Object.defineProperty(obj, 'id', {
// 如果值为false 不允许修改这个属性值 默认值也是false
writable: false,
});
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);