es6核心特性有哪些

发布时间:2022-04-20 10:40:47 作者:iii
来源:亿速云 阅读:172

本篇内容主要讲解“es6核心特性有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“es6核心特性有哪些”吧!

es6核心特性有:1、使用Class关键字创建类,再通过实例化类来创建对象;2、箭头函数,用于简化回调函数的书写;3、解构赋值,可按照一定模式,从数组和对象中提取值,对变量进行赋值;4、“For…of”循环,用于遍历数据、数组、类数组对象。

本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

ES6核心特性

1、类 Class

ES6正式启用 Class 关键字创建"类”再通过实例化"类”来创建“对象”类抽象了对象的公共部分,通过实例化类可以得到一个具体的对象

// 1.使用Class关键字创建类
class 类名 {
    // 自有属性
    constructor(形参1, 形参2, ...) {
        this.属性名1 = 形参1;
        this.属性名2 = 形参2;
        ...
    }
    // 共有属性
    init() {
        函数体;
    }
    ...
}

// 2.利用类结合New关键字实例化对象
let Object = new 类名(实参1, 实参2, ...);

// 3.在已有类基础上创建子类
class 子类 extends 类名 {
    // 自有属性(与父类相同)
    constructor(形参1, 形参2, 新形参1...) {
        //super函数调用父类的constructor
        super(形参1, 形参2, ...);
        // 子类新增属性需要单独定义
        this.新属性1 = 新形参1;
        ...
    }
    // 共有属性(子类函数位于自身父级原型上,优先调用,父类同名函数在更上层原型链上)
    init() {
        函数体;
    }
    ...
}

2、箭头函数

注意事项

3、解构赋值

解构赋值即解析结构再赋值,ES6允许按照一定模式从数组和对象中提取值对变量进行赋值,这被称为解构(Destructuring),这种写法属于"模式匹配",只要等号两边模式相同左边的变量就会被赋予对应的值

数组解构赋值

对象解构赋值

字符串解构赋值

函数参数解构赋值

// 函数参数支持解构赋值
function sum([x, y]) {
    return x + y;
}

// 传入参数时,数组参数解构为x与y
sum([1, 2]);

圆括号使用注意

4、For…of 循环

for (value of arr) {
    执行操作;
}

Iterator

一种新的遍历机制,拥有两个核心。

  1. 迭代器是一个接口,能快捷的访问数据,通过Symbol.iterator来创建迭代器,通过迭代器的next()方法获取迭代之后的结果。

  2. 迭代器是用于遍历数据结构的一个指针(类似于数据库的游标)

5、数值新增方法

Number.isInteger()

Math.trunc()

// 低版本浏览器兼容语法
Math.trunc = Math.trunc || function (x) {
    return x < 0 ? Math.ceil(x) : Math.f1oor(x);
};

Math.sign()

6、字符串新增方法

模板字符串

模板字符串用于简化字符串拼接,模板字符串支持解析变量、换行、调用函数

模板字符串(template string)是增强版的字符串,用反引号标识,可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

`文本${变量}文本${变量}文本`

includes()、startsWith()、endsWith()

padStart()、padEnd()

ES2017引入了字符串补全长度功能,padstart() 用于头部补全,padEnd() 用于尾部补全。

// 补全长度方法提示字符串格式
'12'.padStart(10, 'YYYY-MM-DD'); // "YYYY-MM-12"
'08-31'.padStart(10, 'YYYY-MM-DD'); // "YYYY-08-31"

trimStart()、trimEnd()

trimStart()消除字符串头部的空格,trimEnd()消除字符串尾部的空格,它们返回的都是新字符串,不会修改原始字符串,两个方法对字符串头部(尾部)的tab键、换行符等不可见的空白符号也有效。

repeat()

replaceAll()

ES2021引入了replaceAll()方法,可以一次性替换所有匹配,它的用法与 replace()相同,返回一个新字符串,不会改变原字符串。

7、对象新增方法

Object.is()

它用来比较两个值是否严格相等,与严格比较运算符(===) 的行为基本- -致。

console.log(Object.is(+0, -0)); //false
console.log(Object.is(NaN, NaN)); //true

Object.assign()

8、数组新增方法

Array.from()

Array.of()

// 兼容版本Arrayof()方法
function Arrayof() {
    return Array.prototype.slice.call(arguments);
}

数组实例的fill()

数组实例的find()

findIndex()

includes()

9、Let & Const

ES6中,除了全局和局部作用域,新增了块级作用域

Let

Const

暂时性死区

暂时性死区(TDZ)一种语法规则只要块级作用域内存在 let 或 const 命令内部声明的变量就会"绑定"这个区域,形成封闭作用域,即代码块内的变量必须先声明再使用

10、模块化开发

11、扩展运算符 & Rest运算符

ES6中新增了扩展运算符Rest运算符,它们可以很好地解决函数参数和数组元素长度未知情况下的编码问题使得代码更加健壮简洁

扩展运算符

// 1.扩展运算符代替apply()函数获取数组最大值
let arr = [1, 4, 2, 5, 3];

// apply()方法
Math.max.apply(null, arr);
// 扩展运算符方法
Math.max(...arr);

// 2.扩展运算符代替concat()函数合并数组
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];

// concat()方法
arr1.concat(arr2);
// 扩展运算符方法
[...arr1, ...arr2];

Rest运算符(剩余参数)

// 1.Rest运算符与解构组合使用拆分数组
let arr = [1, 2, 3, 4, 5];
// 将数组拆分,第一个元素赋值到arr1,其余元素赋值到arr2
let [arr1, ...arr2] = arr;
// 将数组拆分,前两个元素赋值到arr1与arr2,其余元素赋值到arr3
let [arr1, arr2, ...arr3] = arr;

// 2.Rest运算符代替arguments
function sum(...arg) {
    // 获取形参数组
    console.log(arg);
}
// 传入形参
sum(形参1, 形参2, ...);

区分两种运算符

拓展 | Let、Var、Const区别

拓展 | ES6遍历对象属性五种方法

for…in用于遍历对象和自身和继承的可枚举属性(不包含Symbol属性)。

Object.keys()函数返回一个数组,包含对象自身所有可枚举属性,不包含继承属性和Symbol属性。

Reflect.ownKeys(obj)函数返回一个数组,可包含枚举属性,不可枚举属性以及Symbol属性,不包含继承属性。

Object.getOwnPropertyNames(obj)函数返回一个数组,包含对象自身的可枚举属性和不可枚举属性,不包含继承属性和Symbol属性。

Object.getOwnPropertySymbols(obj)函数返回一个数组,包含对象自身所有Symbol属性,不包含其他属性。

到此,相信大家对“es6核心特性有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. Go语言的核心特性有哪些
  2. ES6中核心特性有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

es6

上一篇:node的安装模式之间有哪些区别

下一篇:es6中怎么导入资源

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》