ES5中新增方法:数组方法、字符串方法、对象方法

1.ES5新增方法概述

在这里插入图片描述

2.数组方法

在这里插入图片描述

(1)forEach()

<script>
        var arr = [1, 2, 3];
        var sum = 0;
        arr.forEach(function(value, index, array) {
            console.log(index + '号元素' + value);
            console.log('数组是' + arr);
            sum += value;
        })
        console.log(sum);
    </script>

在这里插入图片描述

(2)filter()

在这里插入图片描述

var arr = [10, 15, 21, 34];
var newArr = arr.filter(function(value, index) {
            return value >= 20;
        });
        console.log(newArr);

在这里插入图片描述

(3)some()

在这里插入图片描述

var arr = [10, 15, 21, 34];
var flag = arr.some(function(value) {
            return value >= 20;
        })
        console.log(flag);

在这里插入图片描述

(4)map()

与forEach()类似

var arr = [10, 15, 21, 34];
arr.map(function(value, index) {
            arr.push(value*2);
        })
console.log(arr);

在这里插入图片描述

(5)every()

every()是对数组中每一项运行给定函数,如果该函数对每一项返回true,则返回true
every从迭代开始,一旦有一个不符合条件,则不会继续迭代下去。 every() 不会对空数组进行检测
返回布尔值,遇到不满足条件跳出循环

var arr = [10, 15, 21, 34];
var flag1 = arr.every(function(value) {
           return value >= 10;
       })
       var flag2 = arr.every(function(value) {
           return value >= 20;
       })
       console.log(flag1);
       console.log(flag2);

在这里插入图片描述

(6)forEach()和some()的区别

<script>
        var arr = ['red', 'green', 'pink', 'blue'];
        arr.forEach(function(value) {
            if (value === 'pink') {
                console.log('完成');
                return true;    //不会终止迭代,会继续遍历其他元素
            }
            console.log(1);    
        })
        arr.some(function(value) {
            if (value === 'pink') {
                console.log('完成');
                return true;     //找到符合条件的元素终止迭代,提高了代码的效率
            }
            console.log(1);
        })
        arr.filter(function(value) {
            if (value === 'pink') {
                console.log('完成');
                return true;     //filter和forEach一样不会终止迭代
            }
            console.log(1);
        })
        //如果要在数组中查询一个唯一的元素,some更合适
    </script>

2.字符串方法

在这里插入图片描述

3.对象方法

1.Object.keys()

用于获取对象自身的属性
在这里插入图片描述

2.Object.defineProperty()

定义对象中的新属性或改变对象中的原有属性
在这里插入图片描述
在这里插入图片描述

<script>
        var obj = {
            id: 1,
            pname: '小米',
            price: 1999
        };
        //以前的对象添加和修改属性的方式
        //obj.num = 100;
        //obj.price = 999;
        //Object.defineProperty()定义新属性或修改原有的属性
        //添加新属性
        Object.defineProperty(obj, 'num', {
            value: 1000,
            enumerable: true    //通过Object.defineProperty方法添加的属性
            //enumerable默认值是false
        });
        console.log(obj);
        //修改属性
        Object.defineProperty(obj, 'price', {
            value: 999
        });
        console.log(obj);
        Object.defineProperty(obj, 'id', {
            writable: false   //不可重写
        });
        obj.id = 2;
        console.log(obj);
        Object.defineProperty(obj, 'address', {
            value: 'xx省xx市xx区',
            writable: false,
            enumerable: false,  //不会被遍历出来,可保护隐私,默认值为false
            configurable: false  //adress不允许被删除,默认值为false,并且不再允许修改第三个参数内的数据
        });
        //获取对象自身所有的属性
        var arr = Object.keys(obj);
        console.log(arr);
        delete obj.address;
        delete obj.price;
        console.log(obj);
        //以下重新修改第三参数是不允许的,因为上面address内的configurable是false
        Object.defineProperty(obj, 'address', {
            value: 'xx省xx市xx区',
            writable: true,
            enumerable: true,  
            configurable: true 
        });
        console.log(obj);
    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值