• 技术文章 >web前端 >前端问答

    es6比es5新增了什么

    青灯夜游青灯夜游2022-10-21 19:08:10原创219

    新增内容:1、let、const关键字,用于声明变量,支持块级作用域,拥有暂时性死区;2、解构赋值,是针对数组或者对象进行模式匹配,然后对其中的变量进行赋值的意思;3、展开运算符,可用于将集合和数组中的元素扩展为单个单独的元素;4、Set对象,一种新的数据结构,类似于数组,但是成员的值都是唯一的,没有重复的值;5、构造函数的方法Array.from()、Array.of()。

    大前端成长进阶课程:进入学习

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

    ES6比ES5新增的特性

    let、const:

    let和const支持块级作用域,拥有暂时性死区(必须先声明,再使用,不支持变量提升);

    const是常量,声明时必须赋值,当赋值为基本类型时,不能改变它的值;当赋值为引用类型时,不能改变它的引用,但是可以对引用类型进行操作,如数组的push、对象的属性增删改

    解构赋值:

    es6允许按照一定的模式,从数组或对象中提取值,给变量进行赋值,称为解构赋值。

    解构赋值在代码书写上简单易懂,语义清晰明了,方便对复杂对象中数据字段的获取。

    对象的解构赋值:

    let obj = {
      a: 1,
      b: 2
    };
    let {a, b, c} = obj; // 大括号中的变量名必须和obj的属性名一致
    console.log(a, b, c);
    
    // 输出:
    // a: 1
    // b: 2
    // c: undefined

    数组的解构赋值:(字符串一样)

    let arr = ['a', 'b', 'c'];
    let [e, f] = arr;	// 中括号中的变量按数组中元素的顺序被赋值
    console.log(e, f);
    
    // 输出:
    // e: 'a'
    // f: 'b'
    
    // 快速交换两个变量值
    let a = 1, b = 2;
    [a, b] = [b, a];

    展开运算符:

    由三个点 ( ...) 表示,JavaScript 扩展运算符是在 ES6 中引入的。它可用于将集合和数组中的元素扩展为单个单独的元素。

    扩展运算符可用于创建和克隆数组和对象、将数组作为函数参数传递、从数组中删除重复项等等。

    扩展运算符只能用于可迭代对象。它必须在可迭代对象之前使用,没有任何分隔。例如:

    console.log(...arr);

    数组:

    let arr1 = [1, 2, 3, 4];
    let arr2 = ['a', 'b', ...arr1, 'c'];
    console.log(arr2);
    
    // 输出:
    // ['a', 'b', 1, 2, 3, 4, 'c']

    对象:

    let obj1 = {
      a: 1,
      b: 2
    };
    let obj2 = {
      ...obj1,
      c: 3,
      d: 4
    };
    console.log(obj2);
    
    // 输出:
    // {a: 1, b: 2, c: 3, d: 4}

    剩余参数处理:

    数组:

    let arr = [1, 2, 3, 4, 5];
    let [a, b, ...c] = arr;	// 将arr后面所有的剩余参数放入c中
    console.log(a, b, c);
    
    // 输出:
    // a: 1
    // b: 2
    // c: [3, 4, 5]

    对象:

    let obj = {
      a: 1,
      b: 2,
      c: 3,
      d: 4
    };
    let {a, b, ...c} = obj;
    console.log(a, b, c);
    
    // 输出:
    // a: 1
    // b: 2
    // c: {c: 3, d: 4}
    
    // 对象的复制(不是传地址)
    let obj2 = {...obj};

    Set对象:

    Set是ES6提供的一种新的数据结构,类似于数组,但是成员的值都是唯一的,没有重复的值。

    数组去重:

    let arr = [2, 1, 2, 1, 3, 4, 4, 5];
    let s = new Set(arr);
    arr = [...s];
    // arr: [2, 1, 3, 4, 5]

    Set方法:

    let s = new Set([1, 1, 2, 3, 'a']);
    // 得到Set元素个数:
    s.size;
    // 清空集合
    s.clear();
    // 删除集合中的某个值,返回操作是否成功
    s.delete('a');
    // 查看集合是否包含某个值
    s.has('a');
    // 添加一项,返回集合本身的引用
    s.add('b');

    Map对象:

    ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。

    Map 特征:

    let arr = [
      ['a', 1],
      ['b', 2],
      ['c', 3]
    ];
    let m = new Map(arr);
    // m: {'a' => 1, 'b' => 2, 'c' => 3}

    Map方法:

    // 清空Map
    m.clear();
    // 删除某一项,返回操作是否成功
    m.delete(key);
    // 获取某一项的值,返回对应的val
    m.get(key);
    // 是否包含某一项
    m.has(key);
    // 添加一项,返回Map本身的引用
    m.set(key, val);

    函数新增内容:

    数组新增方法:

    构造函数的方法:

    对象的方法:

    字符串新增方法:

    模版字符串:

    反引号:``,可以换行

    插值表达式:${}

    对象新增方法:

    babel编译器:

    将es6语法编译为es5语法

    【相关推荐:javascript视频教程编程视频

    以上就是es6比es5新增了什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:javascript ES6 es5
    上一篇:es6中for和foreach的区别是什么 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• JavaScript怎么实现数组元素相加• javascript中控制台是什么• javascript怎么求数组中的最大奇数• JavaScript怎么输入N个数据求平均数• 一文详解JavaScript中执行上下文与执行栈(图文结合)
    1/1

    PHP中文网