js学习笔记--ES5新增的方法

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);
执行结果

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值