es6 订阅
ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript 2015(ES2015)。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言 [1]  。另外,一些情况下ES6也泛指ES2015及之后的新增特性,虽然之后的版本应当称为ES7、ES8等。 展开全文
ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript 2015(ES2015)。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言 [1]  。另外,一些情况下ES6也泛指ES2015及之后的新增特性,虽然之后的版本应当称为ES7、ES8等。
信息
简    称
ES6
类    型
前端语言
通过日期
2015年6月
性    质
JavaScript语言的标准
正式名字
ECMAScript 2015(ES2015)
外文名
ECMAScript 6
ECMAScript 6发展历史
2000年,ECMAScript 4.0开始酝酿。这个版本最后没有通过,但是它的大部分内容被ECMAScript6继承了。因此,ECMAScript6制定的起点其实是2000年。2007年10月,ECMAScript 4.0草案发布,本来预计2008年8月发布正式版本。但是,各方对于是否通过这个标准,发生了严重分歧。以Yahoo、Microsoft、Google为首的大公司,反对JavaScript的大幅升级,主张小幅改动;以JavaScript创造者Brendan Eich为首的Mozilla公司,则坚持当前的草案。2008年7月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激烈,ECMA开会决定,中止ECMAScript 4.0的开发,将其中涉及现有功能改善的一小部分,发布为ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为Harmony(和谐)。会后不久,ECMAScript 3.1就改名为ECMAScript 5。2009年12月,ECMAScript 5.0正式发布。Harmony项目则一分为二,一些较为可行的设想定名为 JavaScript.next继续开发,后来演变成ECMAScript 6;一些不是很成熟的设想,则被视为JavaScript.next.next,在更远的将来再考虑推出。2011年,ECMAScript 5.1发布后开始6.0版的制定。2013年3月,ECMAScript 6草案冻结,不再添加新功能。新的功能设想将被放到ECMAScript 7。2013年12月,ECMAScript 6草案发布。然后是12个月的讨论期,听取各方反馈。由于这个版本引入的语法功能太多,而且制定过程当中,还有很多组织和个人不断提交新功能。标准委员会最终决定,标准在每年的6月份正式发布一次,作为当年的正式版本。接下来的时间,就在这个版本的基础上做改动,直到下一年的6月份,草案就自然变成了新一年的版本。2015年6月,ECMAScript 6(ES6)正式通过,成为国际标准,正式名称是“ECMAScript 2015”(简称ES2015)。2016年6月,小幅修订的“ECMAScript 2016”(简称ES2016或ES7)标准发布,相当于ES6.1版,因为两者的差异非常小(只新增了数组实例的includes方法和指数运算符),基本上是同一个标准 [1]  。
收起全文
精华内容
下载资源
问答
  • ES6

    2020-10-11 14:40:01
    【转载】 ES6中的简写语法 ES6解构嵌套对象

    ES6中的简写语法
    ES6解构嵌套对象
    ES6解构数组解构
    ES6之展开运算符(…)
    ES6有哪些新特性
    ES6数组及编程题


    一、let和const命令
    二、变量的解构赋值
    三、函数的默认参数
    四、模板字符串
    五、箭头函数
    六、数组的扩展(扩展运算符)
    七、对象的扩展
    1、属性的简洁表示法
    2、属性名表达式

    解构赋值中小括号的作用

    展开全文
  • es6

    2017-12-05 19:00:00
    es6学习http://es6.ruanyifeng.com/ es6特性练习:http://es6katas.org/ es6常用部分及重点学习:https://segmentfault.com/a/1190000004365693 转载于:https://www.cnblogs.com/intangible/p/7988827.html...

    es6学习 http://es6.ruanyifeng.com/

     

    es6特性练习:http://es6katas.org/

     

    es6常用部分及重点学习:https://segmentfault.com/a/1190000004365693

    转载于:https://www.cnblogs.com/intangible/p/7988827.html

    展开全文
  • es6之扩展运算符 三个点(...)

    万次阅读 多人点赞 2018-09-30 19:09:23
    es6之扩展运算符 三个点(...)es6之扩展运算符 三个点(...)对象的扩展运算符数组的扩展运算符总结 es6之扩展运算符 三个点(…) 对象的扩展运算符 理解对象的扩展运算符其实很简单,只要记住一句话就可以: ...

    es6之扩展运算符 三个点(…)

    对象的扩展运算符

    理解对象的扩展运算符其实很简单,只要记住一句话就可以:

    对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中

    let bar = { a: 1, b: 2 };
    let baz = { ...bar }; // { a: 1, b: 2 }
    

    上述方法实际上等价于:

    let bar = { a: 1, b: 2 };
    let baz = Object.assign({}, bar); // { a: 1, b: 2 }
    

    Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)

    Object.assign方法的第一个参数是目标对象,后面的参数都是源对象。(如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性)。

    同样,如果用户自定义的属性,放在扩展运算符后面,则扩展运算符内部的同名属性会被覆盖掉。

    let bar = {a: 1, b: 2};
    let baz = {...bar, ...{a:2, b: 4}};  // {a: 2, b: 4}
    

    利用上述特性就可以很方便的修改对象的部分属性。在redux中的reducer函数规定必须是一个纯函数(如果不是很清楚什么是纯函数的可以参考这里),reducer中的state对象要求不能直接修改,可以通过扩展运算符把修改路径的对象都复制一遍,然后产生一个新的对象返回。

    这里有点需要注意的是扩展运算符对对象实例的拷贝属于一种浅拷贝。肯定有人要问什么是浅拷贝?我们知道javascript中有两种数据类型,分别是基础数据类型引用数据类型基础数据类型是按值访问的,常见的基础数据类型NumberStringBooleanNullUndefined,这类变量的拷贝的时候会完整的复制一份;引用数据类型比如Array,在拷贝的时候拷贝的是对象的引用,当原对象发生变化的时候,拷贝对象也跟着变化,比如:

    let obj1 = { a: 1, b: 2};
    let obj2 = { ...obj1, b: '2-edited'};
    console.log(obj1); // {a: 1, b: 2}
    console.log(obj2); //  {a: 1, b: "2-edited"}
    

    上面这个例子扩展运算符拷贝的对象是基础数据类型,因此对obj2的修改并不会影响obj1,如果改成这样:

    let obj1 = { a: 1, b: 2, c: {nickName: 'd'}};
    let obj2 = { ...obj1};
    obj2.c.nickName = 'd-edited';
    console.log(obj1); // {a: 1, b: 2, c: {nickName: 'd-edited'}}
    console.log(obj2); // {a: 1, b: 2, c: {nickName: 'd-edited'}}
    

    这里可以看到,对obj2的修改影响到了被拷贝对象obj1,原因上面已经说了,因为obj1中的对象c是一个引用数据类型,拷贝的时候拷贝的是对象的引用。

    数组的扩展运算符

    扩展运算符同样可以运用在对数组的操作中。

    • 可以将数组转换为参数序列
    function add(x, y) {
      return x + y;
    }
    
    const numbers = [4, 38];
    add(...numbers) // 42
    
    • 可以复制数组

    如果直接通过下列的方式进行数组复制是不可取的:

    const arr1 = [1, 2];
    const arr2 = arr1;
    arr2[0] = 2;
    arr1 // [2, 2]
    

    原因上面已经介绍过,用扩展运算符就很方便:

    const arr1 = [1, 2];
    const arr2 = [...arr1];
    

    还是记住那句话:扩展运算符(…)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中,这里参数对象是个数组,数组里面的所有对象都是基础数据类型,将所有基础数据类型重新拷贝到新的数组中。

    • 扩展运算符可以与解构赋值结合起来,用于生成数组
    const [first, ...rest] = [1, 2, 3, 4, 5];
    first // 1
    rest  // [2, 3, 4, 5]
    

    需要注意的一点是:

    如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错。

    const [...rest, last] = [1, 2, 3, 4, 5];
    // 报错
    const [first, ...rest, last] = [1, 2, 3, 4, 5];
    // 报错
    
    • 扩展运算符还可以将字符串转为真正的数组
    [...'hello']
    // [ "h", "e", "l", "l", "o" ]
    
    • 任何 Iterator 接口的对象(参阅 Iterator 一章),都可以用扩展运算符转为真正的数组

    这点说的比较官方,大家具体可以参考阮一峰老师的ECMAScript 6入门教程

    比较常见的应用是可以将某些数据结构转为数组,比如:

    // arguments对象
    function foo() {
      const args = [...arguments];
    }
    

    用于替换es5中的Array.prototype.slice.call(arguments)写法。

    总结

    扩展运算符的用法就说到这里,介绍的不全但都是些最常见的用法。

    下面的是我的公众号二维码图片,欢迎关注。
    在这里插入图片描述

    展开全文
  • ES6练习:学习ES6-源码

    2021-02-15 21:06:46
    ES6练习:学习ES6
  • 理解-ES6:提醒es6
  • es6:ES5与ES6参考-源码

    2021-02-05 01:36:38
    es6:ES5与ES6参考
  • ES6 构建工具,ES6项目构建框架,es6开发初始架构编译项目, 学习ES6项目, ES6学习笔记, gulp, webpack, babel
  • ES6个人笔记记录——数组扩展

    万次阅读 2020-05-08 11:47:51
    // 扩展运算符 console.log(1,...[2,3,4],5); // ES5 console.log(Math.max.apply(null,[14,2...// ES6 let { max } = Math; console.log(max(...[14,2,48])); // ES5 var arr1 = [0,1,2]; var arr2 = [3,4,5]; co...
    // 扩展运算符
    console.log(1,...[2,3,4],5);
    
    // ES5
    console.log(Math.max.apply(null,[14,2,48]));
    // ES6
    let { max } = Math;
    console.log(max(...[14,2,48]));
    
    // ES5
    var arr1 = [0,1,2];
    var arr2 = [3,4,5];
    console.log("ES5:"+Array.prototype.push.apply(arr1,arr2),arr1);
    // ES6
    let arr3 = [0,1,2];
    let arr4 = [3,4,5];
    console.log("ES6:"+arr3.push(...arr4),arr3);
    
    // 合并数组
    // ES5
    let [arr5,arr6,arr7] = [['a','b'],['c'],['d','e']];
    console.log("ES5:"+arr5.concat(arr6,arr7));
    // ES6
    let [arr8,arr9,arr10] = [['a','b'],['c'],['d','e']];
    console.log("ES6:"+[...arr8,...arr9,...arr10]);
    
    // Array.from()
    let arrayLike = {
    	'0' : 'a',
    	'1' : 'b',
    	'2' : 'c',
    	length : 3
    };
    // ES5
    console.log([].slice.call(arrayLike));
    // ES6
    console.log(Array.from(arrayLike,));
    console.log(Array.from(arrayLike,x => x + x ));
    
    // 数组实例的enties()、values()、keys()
    for(let index of ['a','b'].keys()){
    	console.log("keys():"+index);
    }
    
    for(let elem of ['a','b'].values()){
    	console.log("values():"+elem);
    }
    
    for(let [index,item] of ['a','b'].entries()){
    	console.log("entries():",item,index);
    }
    
    // indexOf()与includes()比较
    /*
    	indexOf()有两个缺点。
    	1.是不够语义化。
    	含义是找到参数的第一个出现位置,所以要比较是不是-1,表达不够直观
    	2.内部使用严格相等运算符'==='进行判断,会出现NaN的误判
     */
    console.log([1,2,3].includes(1));
    console.log([1,2,3].indexOf(1));
    // ES6将空位明确转为undefined
    
    展开全文
  • ES6代码转ES5教程(babel安装使用教程)

    万次阅读 2020-08-11 15:00:34
    Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在老版本的浏览器执行。这意味着,你可以用 ES6 的方式编写程序,又不用担心现有环境是否支持。下面是一个例子。 // 转码前 input.map(item ...
  • 文章目录什么是ES6为什么要使用ES6 什么是ES6 ES的全称是 ECMAScript, 它是由ECMA国际标准化组织制定的一项脚本语言的标准化规范。 ES6 实际上是一个泛指,泛指 es2015 即后需的版本 为什么要使用ES6 每一次标准的...
  • ECMAScript 2015(ES6) 在EcmaScript 2015(ES6)中进行的操作。 키노트 학습자료
  • es6features-zhCN:es6features中文版
  • ES6特性

    千次阅读 2019-06-11 21:22:46
    ES6特性
  • 文章目录一.ES6是什么?目标二.新特性1.const 与 let 变量let与const规则和var的区别2.模版字变量3.解构赋值定义:解构模型数组模型的解构(Array)对象模型的解构(Object)4 对象字面量简写法5.迭代器Iterator迭代...
  • ES6-指南:to学习ES6概念的综合指南
  • guia-basico-ES6:Quer aprender es6吗?
  • ES6解构赋值: ES6... :ES6三点

    千次阅读 2020-04-02 14:39:26
    es6的特性,主要用于 数组和对象的析构 直接上问题: 因为chrome低版本(用的55版本)不支持es6...的下面这种写法, 需要转为es5写法 function calcLinePaths() { . . . . // 省略以上代码 return { ......
  • 关于ES6

    2020-11-10 22:18:36
    1 什么是es6 ES的全称是ECMAScript,它是由ECMA国际标准化组织制定的一项脚本语言的标准化规范。 2为什么要使用es6 ES5不能满足目前前端越来越复杂,庞大的现状,可以说已经过时了,ES6是对ES5的增强和升级。 1....
  • es6完整版本

    2018-12-26 16:28:11
    最完整的es6,适合想详细学习es6的前端开发人员深入学习
  • ES6 教程

    2020-04-07 11:28:03
    ES6 教程 文章目录ES6 教程简介ECMAScript 的背景ECMAScript 的历史ES6 的目标与愿景本教程的内容 简介 ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。 ES6 主要是为了解决 ES5 的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 138,757
精华内容 55,502
关键字:

es6