JS面向对象编程之ES5新增方法(4)

1.数组方法

1-1.数组方法集合

  1. forEach()
  2. map()
  3. filter()
  4. some()
  5. every()

1-2.forEach()

array.forEach(function(currentValue,index,arr))
  • currentValue:数组当前项的值
  • index:数组当前项的索引
  • arr:数组对象本身

使用:

var arr = [1,2,3]
        arr.forEach(function(value,index,array){
            console.log('每个数组元素'+ value);
            console.log('每个数组元素的索引'+ index);
            console.log('数组本身'+ array);
        })

1-3.fliter()

array.filter(function(currentValue,index,arr))
  • filter()方法创建一个新的数组,新数组中的元素时通过检查指定数组中符合条件的所有元素,主要用于筛选数组
  • currentValue:数组当前项的值
  • index:数组当前项的索引
  • arr:数组对象本身

使用:

// filter筛选数组
        var arr = [10,20,30,40,50]
        var newArr = arr.fliter(function(value,index,arr){
            return value >= 20
        })
        console.log(newArr);

请添加图片描述

1-4.some()

array.some(function(currentValue,index,arr))
  • some()用于查找数组中是否又满足条件的元素,如果有返回true没有返回false
  • currentValue:数组当前项的值
  • index:数组当前项的索引
  • arr:数组对象本身
 // some查找数组中是否满足条件的元素
        var arr = [10,20,30,40,50]
        var newArr = arr.some(function(value,index,arr){
            return value >= 20
        })
        console.log(newArr);

请添加图片描述

2.字符串方法

  1. trim()去点字符串两边空格
  2. 一般用于input提交的value值,把value值两边去掉空格,更方便的进行判断

有空格:

var str0 = '   lq    '
        console.log(str0);
        console.log(str0.length);
    </script>

请添加图片描述

使用trim()后 ,返回一个新字符串,要定义一个新字符串接收一下

 var str0 = '   lq    '
        // trim()返回一个新字符串
        var str1 =  str0.trim()
        console.log(str1);
        console.log(str1.length);

请添加图片描述

3.对象方法

  1. Object.keys()

3-1.Object.keys()

  • 获取对象自身所有的属性,不包括属性值
  • 返回的是一个由属性名组成的数组
var  arr = {
            name:'lq',
            age:22,
            sex:"nan"
        }
        var newArr = Object.keys(arr)
        console.log(newArr);

请添加图片描述

3-2.Object.defineProperty()

  • 定义对象中新属性或修改原有属性
Object.defineProperty(obj,prop,descriptor)
  • obj:必需,目标对象
  • prop:必须,需定义或修改的属性名
  • descriptor:必需,目标属性所拥有的特性

添加和修改

var  obj = {
            name:'lq',
            age:22,
            sex:"nan"
        }
        // 给obj添加一个tall属性
        Object.defineProperty(obj,'tall',{
            value:'165cm'
        })
        console.log(obj);
        // 给obj的age属性修改成23
        Object.defineProperty(obj,'age',{
            value:23
        })
        console.log(obj);

请添加图片描述
descriptor是该方法的i三个参数,必须写成一个{}的模式里面有以下几个特殊的特性

  1. value代表要添加的属性值,或者要修改的属性值
  2. writeble,如果是false就是不允许修改或重写,如果是true就是允许
  3. enumerable,目标属性是否可以被枚举,就是是否能被遍历出来,true或false,默认false
  4. configurable,目标属性是否可以被删除,或者是否可以再次修改特性 ,默认为false

3-2-1.Object.defineProperty(obj,prop,writeble)

  • 如果writeble为false就是不允许被修改
    enumerable,目标属性是否可以被枚举,就是是否能被遍历出来,true或false,默认false
// 如果writeble为false就是不允许被修改
        Object.defineProperty(obj,'name',{
            writable:false
        })
        // 修改试试看
        obj.name = 'wy'
        console.log(obj);

结果是修改失败

3-2-2.Object.defineProperty(obj,prop,enumerable)

// 添加一个weight属性,允许被遍历出来
        Object.defineProperty(obj,'weight',{
            value:"60kg",
            enumerable:true
        })
        console.log(Object.keys(obj));

请添加图片描述

3-2-3.Object.defineProperty(obj,prop,configurable)

configurable,目标属性是否可以被删除,或者是否可以再次修改特性 ,默认为false

// 设置名字是否被删除,设置可以删除
        Object.defineProperty(obj,'name',{
            configurable:true
        })
        delete obj.name
        console.log(obj);

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值