ES6
ES6是ECMAScript标准十余年来变动最大的一个版本,其中添加了许多新的语法特性,既有大家耳熟能详的Promise,也有闻所未闻的Proxy代理和Reflection反射等。理解ES6的特性对于所有JSt开发者而言至关重要,ES6将会成为JS应用程序的主流特性!
奋飛
乐观、勇气、专注、果断、好奇、公正、慎思、真诚、追求极致追求完美、诚信!独立撰写了多个前端专题模块,访问量达百万级。多次负责组织大数据可视化前端架构平台开发工作。对前端新技术、新潮流具有很强的敏锐力和洞察力!
展开
-
ES6--变量的声明及解构赋值
ES6的目标是使得JavaScript语言可以用来编写大型的复杂的应用程序,成为企业级开发语言;该标准已于2015年6月17日正式发布。但是真正的普及我认为还得需要一段时间,然而这并不是理由让我们不去了解ES6。更重要的一点是,Google公司的V8引擎已经部署了ES6部分特性,对于NodeJS的开发者来说应该熟练掌握。在浏览器没有全面支持的情况下,Google公司推出了Traceur转码器(htt原创 2017-02-11 21:13:57 · 6798 阅读 · 1 评论 -
ES6--字符串、正则、数值、数组的扩展
三、字符串的扩展字符编码JavaScript内部,字符以UTF-16的格式储存,每个字符固定为2个字节。对于那些需要4个字节储存的字符(Unicode码点大于0xFFFF的字符),JavaScript会认为它们是两个字符。然而汉字往往就是4个字节存储,ES6之前处理起来有些麻烦。示例:字符编码var ChineseName = "李刚";var EnglishName = "ligang";Ch原创 2017-04-08 18:13:19 · 2680 阅读 · 1 评论 -
ES6--对象、函数的扩展
七、对象的扩展ES6中为对象属性和方法提供了简洁的方式,表达式作为属性名变成可能,并提供了name属性返回函数名。属性的简洁表示法const name = 'ligang';const person = { name, sayName() { console.log(this.name); }};属性名表达式const propKey = 'name';原创 2017-04-16 19:46:10 · 1457 阅读 · 0 评论 -
ES6--Set、Map、Symbol、Proxy及Reflect
九、Set和Map数据结构SetES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。之前的博文曾阐述过使用ES5实现JavaScript数据结构-集合。new Set([iterable]);var items = new Set([1,2,3,4,5,5,5,5]);console.log(items.size); // 5console.log(items)原创 2017-04-23 22:31:39 · 3594 阅读 · 0 评论 -
ES6--Promise、Generator及async
ES6诞生以前,异步编程的方法,大概有如下四种:回调函数、事件监听、发布/订阅、Promise对象;ES6中,引入了Generator函数;ES7中,async更是将异步编程带入了一个全新的阶段。十四、Promise对象 Promise,就是一个对象,用来传递异步操作的消息,避免了层层嵌套的回调函数。它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个事件提供统一的API,可供进原创 2017-04-27 10:28:15 · 7454 阅读 · 0 评论 -
ES6--Class、Module及常用特性
写到这里,ES6的所有语法基本已全部描述,有彩蛋、也有单纯的语法糖。里面大多数的语法也可用通过ES5去shim(除了Proxy)。在Node6+以上,几乎所有的ES6语法被支持,前端可通过Babel6工具进行转换。在使用ES6过程中,有几个很爽的小特性:(1)设置对象变量键值的语法(2)模板字符串(3)find/findIndex(4)扩展运算符(4)默认参数值原创 2017-05-07 12:26:16 · 3442 阅读 · 0 评论 -
深入理解ES6--块级作用域、字符串、正则、数组
下述内容是通过阅读《深入理解ES6》后的总结,内容为对ES6的常用或错误使用点的总结,以便更深入的理解,这里并不会讲述和陈述基本用法,想要查看ES6基本语法请移步到ES6基本语法。块级作用域绑定块级声明const和let只在当前代码块内有效,一旦执行到块外会立即被销毁。javascript中的常量如果是对象,则对象中的值可以修改。const name = ...原创 2018-03-29 22:14:32 · 520 阅读 · 0 评论 -
深入理解ES6--解构
解构时一种打破数据结构,将其拆分为更小部分的过程。解构在实际开发中经常会应用到对象和数组中。关于解构的基本用法,请参考:ES6–变量的声明及解构赋值解构:使数据访问更便捷对象解构解构赋值 一定要用一对小括号包裹解构赋值语句,javascript引擎将一对开放的花括号视为一个代码块,而语法规定,代码块语句不允许出现在赋值语句左侧,添加小括号后可以将块语句转化为一个表达...原创 2018-03-29 22:27:05 · 3380 阅读 · 18 评论 -
深入理解ES6--对象、函数扩展
扩展对象的功能性属性名称简写let name = 'ligang'let person = { name, sayName() { console.log(name) }}javascript引擎会在访问作用域中查找其同名变量;如果找到,则变量的值被赋给对象字面量的同名属性。Object.is()Object.is()方法是为了弥补全等运算符’==...原创 2018-04-02 19:27:53 · 495 阅读 · 0 评论 -
深入理解ES6--Set、Map及Symbol
Set集合和Map集合 Set集合是一种无重复元素的列表,通常用来检测给定的值在某个集合中是否存在;Map集合内含多组键值对,通常用来缓存频繁取用的数据。ES5中的问题var map = Object.create(null)map[5] = 'foo'console.log(map[5], map['5']) // 'foo' 'foo'let key1 = {...原创 2018-04-04 20:30:53 · 831 阅读 · 0 评论 -
深入理解ES6--迭代器、生成器、代理、反射、Promise
迭代器(Iterator)和生成器(Generator) for-of循环及展开运算符…都是针对迭代器的!!!不能使用箭头函数来创建生成器;ES6函数的简写方式可以(只需在函数名前加星号)可迭代对象具有Symbol.iterator属性,ES6中,所有的集合对象(数组、Set集合和Map集合)和字符串都是可迭代对象,这些对象都具有默认迭代器;let collection...原创 2018-04-10 22:58:23 · 799 阅读 · 0 评论 -
深入理解ES6--用模块封装代码
用模块封装代码 在模块顶部创建的变量不会自动被添加到全局共享作用域(模块顶部this的值为undefined),必须导出后,外部代码才可访问。浏览器中使用模块<script>的type属性缺失或者包含一个javascript内容类型(如,text/javascript)时作为脚本加载;type属性值为“module”时支持模块加载(如果浏览器不支持,会自动向后兼容...原创 2018-04-10 23:05:12 · 2486 阅读 · 0 评论