JavaScript高级--- (3)ES5新方法,数组、字符串、对象

x33g5p2x  于2021-09-24 转载在 JavaScript  
字(2.2k)|赞(0)|评价(0)|浏览(342)

一、数组方法

1、forEach()方法,遍历数组元素

用法:array.forEach(function(currentValue,index,arr))

  • currentValue:数组当前项的值
  • index:数组当前项的索引
  • arr:数组对象本身
var arr = [1, 2, 3, 4];
        var sum = 0;
        arr.forEach(function(value, index, array) {
            // console.log(`${index}: ${value}`);
            // console.log(`数组本身: ${array}`);
            sum += value;
        })
        console.log(sum); //10

2、filter()方法,返回满足条件的元素

用法:array.filter(function(currentValue, index, arr))

  • filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,主要用于筛选数组
  • 注意它直接返回一个新数组
  • currentValue: 数组当前项的值
  • index:数组当前项的索引
  • arr:数组对象本身
// filter过滤器 筛选数组元素
        var arr = [12, 35, 245, 22, 43];
        var newArr = arr.filter(function(value, index, array) {
            return value >= 20;
        })
        console.log(newArr); // [35, 245, 22, 43]

3、some()方法,检查数组中是否存在满足条件的元素,返回值为布尔值

用法:array.some(function(currentValue, index, arr))

  • some() 方法用于检测数组中的元素是否满足指定条件. 通俗点 查找数组中是否有满足条件的元素
  • 注意它返回值是布尔值, 如果查找到这个元素, 就返回true , 如果查找不到就返回false.
  • 如果找到第一个满足条件的元素,则终止循环. 不在继续查找.
  • currentValue: 数组当前项的值
  • index:数组当前项的索引
  • arr:数组对象本身
// some查找是否存在满足条件的元素,返回布尔值
        var arr = [10, 30, 4];
        var flag = arr.some(function(value, index, array) {
            return value >= 20;
        })
        console.log(flag); // true

二、字符串方法

1、trim方法,去取字符串左右两端的字符,默认为空格

用法:str.trim()

  • trim() 方法并不影响原字符串本身,它返回的是一个新的字符串。
var str = " 234567 dfgh ";
        console.log(str);
        console.log(str.trim());

三、对象方法

1、defineProperty()方法,定义对象的新属性或修改原有的属性

用法:Object.defineProperty(obj, prop, descriptor)

  • obj:必需。目标对象
  • prop:必需。需定义或修改的属性的名字
  • descriptor:必需。目标属性所拥有的特性

Object.defineProperty() 第三个参数 descriptor 说明: 以对象形式 { } 书写

  • value: 设置属性的值 默认为undefined
  • writable: 值是否可以重写。true | false 默认为false
  • enumerable: 目标属性是否可以被枚举。true | false 默认为 false
  • configurable: 目标属性是否可以被删除或是否可以再次修改特性 true | false 默认为false
var obj = {
                id: 1,
                pname: '小米',
                price: 1999
            }
            // 对象增删方式(old)
            // obj.num = 1000;
            // obj.price = 100;
            // console.log(obj);

        // Object.defineProperty(obj, prop, descriptor);
        Object.defineProperty(obj, 'num', {
            value: 1000,

        });
        Object.defineProperty(obj, 'price', {
            value: 9.9
        });
        Object.defineProperty(obj, 'id', {
            writable: false // 是否允许被修改
        });
        // Object.defineProperty(obj, 'address', {
        // value: "中国山东",
        // enumerable: false //是否允许被遍历
        // });
        Object.defineProperty(obj, 'address', {
            // writable: false // 是否允许被修改
            value: "zhongguo",
            enumerable: false,
            configurable: false // 是否允许被删除,默认为FALSE,不允许被删除
        });
        obj.id = 2;
        console.log(obj);
        console.log(Object.keys(obj));
        delete obj.address;
        delete obj.pname;
        console.log(obj);

下一篇:JavaScript高级— (4)改变函数内部this指向的方法

相关文章