ES6 - Day2 - ES6中的新增方法

3. ES6 中的新增方法

3.1 数组方法

迭代(遍历)方法: forEach()map()filter()some()every()

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

示例:

var arr = [1,2,3];
var sum;
arr.forEach(function(value, index, array){
    console.log('每个数组元素:' + value);
    console.log('每个数组元素的索引号:' + index);
    console.log('数组本身:' + array);
    sum += value;
});
console.log(sum);	// 6
3.1.2 filter()
array.filter(function(currentValue, index, arr))
  • filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中
  • 符合条件的所有元素,主要用于筛选数组
  • 注意它直接返回一个新数组
  • currentValue: 数组当前项的值
  • index:数组当前项的索引
  • arr:数组对象本身

示例:

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

示例:

var arr = [1, 2, 3, 4];
var flag = arr.some(function(value, index, array){
    return value > 4;
});
console.log(flag);	// false
3.2 字符串方法
3.2.1 trim()
  • trim() 方法会从一个字符串的两端删除空白字符。

  • trim() 方法并不影响原字符串本身,它返回的是一个新的字符串。

var str = '  hello  ';
var str1 = str.trim();
console.log(str1);	//hello
3.3 对象方法
3.3.1 Object.keys()

用于获取对象自身所有的属性

Object.keys(obj)
  • 效果类似 for…in
  • 返回一个由属性名组成的数组

示例:

var obj = {
    id: 1,
    pname: '小米',
    price: 1999,
    num: 2000
};
var arr = Object.keys(obj);
console.log(arr);
arr.forEach(function(value) {
    console.log(value);		// id pname price num
})
3.3.2 Object.defineProperty()

定义对象中新属性或修改原有的属性

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

定义新属性或修改原有的属性

Object.defineProperty(obj, prop, descriptor)

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

  • value: 设置属性的值 默认为undefined
  • writable: 值是否可以重写。true | false 默认为false
  • enumerable: 目标属性是否可以被枚举。true| false 默认为 false
  • configurable: 目标属性是否可以被删除或是否可以再次修改特性 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,
});

你可能感兴趣的:(es6,javascript,es6)