关于es5,es6,es2016,es2017的常用方法

Es5:

数组方法:

"use strict"  严格方法

String.trim() 修改字符串前后空格

Array.isArray() 判断是否为数组

Array.forEach() 便利数组

Array.map() 遍历数组返回新的数组

Array.filter() 过滤数组返回新的数组

Array.reduce() 便利求和

Array.reduceRight() 便利求和从右开始加

Array.every() 是否所有的选项都符合判断

Array.some() 是否存在选项符合判断

Array.indexOf() 从开始处获取数组中数据的下标,不存在返回-1,适用于非对象数组

Array.lastIndexOf() 从末尾处获取数组中数据的下标,不存在返回-1,适用于非对象数组

JSON.parse() Json解析

JSON.stringify() 转Json

Date.now() 获取当前时间毫秒数

对象方法:

getter和setter

ES5 允许您使用类似于获取或设置属性的语法来定义对象方法。

这个例子为名为 fullName 的属性创建一个 getter

// 创建对象:
var person = {
  firstName: "Bill",
  lastName : "Gates",
  get fullName() {
    return this.firstName + " " + this.lastName;
  }
};

// 使用 getter 显示来自对象的数据:
document.getElementById("demo").innerHTML = person.fullName;
var person = {
  firstName: "Bill",
  lastName : "Gates",
  language : "NO",
  get lang() {
    return this.language;
  },
  set lang(value) {
    this.language = value;
  }
};

// 使用 setter 设置对象属性:
person.lang = "en";

// 使用 getter 显示来自对象的数据:
document.getElementById("demo").innerHTML = person.lang;

Object.defineProperty() 是 ES5 中的新对象方法。它允许您定义对象属性和/或更改属性的值和/或元数据。

// 创建对象:
var person = {
  firstName: "Bill",
  lastName : "Gates",
  language : "NO", 
};

// 更改属性:
Object.defineProperty(person, "language", {
  value: "EN",
  writable : true, //是否可更改
  enumerable : true, //是否可枚举
  configurable : true //以上两个配置是否可修改,是否可删除,但要注意,此配置不可逆
});

Object.defineProperty(object, property, descriptor) 添加或更改对象属性

Object.defineProperties(object, descriptors) 添加或更改多个对象属性

Object.getOwnPropertyDescriptor(object, property)  访问属性

Object.getOwnPropertyNames(object) 将所有属性作为数组返回

Object.keys(object) 将可枚举属性作为数组返回

Object.getPrototypeOf(object)  访问原型

Object.preventExtensions(object) 防止向对象添加属性

Object.isExtensible(object)  如果可以将属性添加到对象,则返回 true

Object.seal(object)  防止更改对象属性(而不是值)

Object.isSealed(object)  如果对象被密封,则返回 true

Object.freeze(object)  防止对对象进行任何更改

Object.isFrozen(object) 如果对象被冻结,则返回 true


Es6:

取幂运算符(**)将第一个操作数提升到第二个操作数的幂。x ** y 的结果与 Math.pow(x,y) 相同

Array.find() 方法返回通过测试函数的第一个数组元素的值

Array.findIndex() 方法返回通过测试函数的第一个数组元素的索引。

Number.isInteger() ,如果参数是整数,则 Number.isInteger() 方法返回 true

Number.isSafeInteger() ,如果参数是安全整数,则 Number.isSafeInteger() 方法返回 true

isFinite(),如果参数为 Infinity 或 NaN,则全局 isFinite() 方法返回 false。

isNaN() ,如果参数是 NaN,则全局 isNaN() 方法返回 true。否则返回 false。


Es2016:

幂运算符 (**) 将第一个操作数提高到第二个操作数的幂。

let z = x ** 2;//25

Array.includes() ,ECMAScript 2016 将 Array.prototype.includes 引入数组。这允许我们检查元素是否存在于数组中 ,适用于非对象数组


Es2017:

padStart 和 padEnd,ECMAScript 2017 添加了两个 String 方法:padStart 和 padEnd,以支持在字符串的开头和结尾进行填充。ie不支持

let str = "5";
str = str.padStart(4,0);
// 结果是: 0005


let str = "5";
str = str.padEnd(4,0);
// 结果是: 5000

Object.entries() 方法返回对象中键/值对的数组:

const person = {
  firstName : "Bill",
  lastName : "Gates",
  age : 50,
  eyeColor : "blue"
};
console.log(Object.entries(person));

结果:
[
    [
        "firstName",
        "Bill"
    ],
    [
        "lastName",
        "Gates"
    ],
    [
        "age",
        50
    ],
    [
        "eyeColor",
        "blue"
    ]
]

Object.values() 类似 Object.entries(),但返回对象值的单维数组。

Object.values() 类似 Object.keys(),但返回对象值的单维数组。


Es2018:

ECMAScript 2018 使用 Promise.finally 完成了 Promise 对象的完整实现

let myPromise = new Promise();

myPromise.then();
myPromise.catch();
myPromise.finally();

ECMAScript 2018 添加了 Rest 属性。这允许我们破坏一个对象并将剩余物收集到一个新对象上:

let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }

猜你喜欢

转载自blog.csdn.net/m0_59962790/article/details/130450566
今日推荐