
ECMAScript6
文章平均质量分 83
ManGoYi
be yourself
展开
-
ES6数值的扩展
1 二进制和八进制表示法 ES6提供了二进制和八进制数值的新写法,分别用前缀0b(或0B)和0o(或0O)表示0b111110111 === 503 // true0o767 === 503 // true如果将0b和0o前缀的字符串数值转为十进制,要使用Number方法Number('0b111') // 7Number('0o10') /...原创 2018-03-15 09:26:08 · 235 阅读 · 0 评论 -
Promise对象
1 Promise的含义 Promise是异步编程的一种解决方案,比传统的解决方法一一回掉函数和事件一一更合理和更强大。它由社区最早提出和实现,ES6将其写进了语言标准,统一了用法,原生提供了Promise对象。所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise是一个对象,从它可以获取异步操作的消息,Promis...原创 2018-04-11 10:00:04 · 151 阅读 · 0 评论 -
Set和Map数据结构
1 Set ES6提供了新的数据结构Set,它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成Set数据结构。const s = new Set();[2,3,5,4,5,2,2].forEach(x => s.add(x));for(let i of s) { console.log(i);}// 2 3 5 4以...原创 2018-03-26 10:15:49 · 212 阅读 · 0 评论 -
Symbol
1 概述 ES的对象属性名都是字符串,容易造成属性名的冲突。比如,你使用了他人提供的对象,但又想为这个对象添加新的方法,新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就可以从根本上防止属性名的冲突。ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。它是JavaScript语言的第七种数据类型,前六种是: undefined、...原创 2018-03-21 10:04:58 · 251 阅读 · 0 评论 -
ES6正则的扩展
1 RegExp构造函数 在ES5中,RegExp构造函数的参数有两种情况: 第一种情况:参数是字符串,第二个参数表示正则表达式的修饰符(flag)var regex = new RegExp("xyz", "i");// 等价于var regex = /xyz/i; // /xyz/i第二种情况: 参数是一个正则表达式,直接表示正则表达式var regex = n...原创 2018-03-14 17:17:26 · 242 阅读 · 0 评论 -
ES6字符串的扩展
1 字符的Unicode表示法 javascript允许采用\uxxxx形式表示一个字符。ES6对其作出一点改进,只要将码点放入大括号,就能正确解读该字符"\u{20BB7}" // ��"\u{41}\u{42}\u{43}" // "ABC"2 codePointAt() Javascript内部,字符以UTF-16的格式存储,每个字符固定为2个字...原创 2018-03-14 15:51:02 · 607 阅读 · 0 评论 -
ES6对象的扩展
1 属性的简洁表示法ES6允许直接写入变量和函数,作为对象的属性和方法。这种写法更加简洁const foo = 'bar';const baz = {foo};bar // {foo: 'bar'}// 等同于const baz = {foo: foo}function f(x, y) { return {x, y};}// 等同于funct...原创 2018-03-20 15:45:27 · 199 阅读 · 0 评论 -
Reflect
概述 Reflect对象和Proxy对象一样,也是ES6为了操作对象而提供的新的API。Reflect对象设计的目的有: (1)将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上,现阶段,某些方法同时在Object和Reflect对象上面部署,未来的新方法将只会部署到Reflect对象上,也就是说,从Reflect对象上可...原创 2018-03-30 09:59:46 · 170 阅读 · 0 评论 -
ES6中变量的解构赋值
数组的解构赋值数组的解构赋值,从数组中提取值,按照对应位置,对变量进行赋值。 本质上是属于“模式匹配”,只要等号两边的模式相同,左边的变量就会赋予对应的值。 let [head, ...tail] = [1, 2, 3, 4];1 解构不成功,变量的值就等于undefined。 let [x, y, ...z] = ['a']; ...原创 2018-03-13 17:29:04 · 215 阅读 · 0 评论 -
ES6数组的扩展
1 扩展运算符 扩展运算符是三个点(…),它好比rest参数的逆运算,将一个数组转为用逗号分隔的参数序列。console.log(...[1, 2, 3])// 1 2 3console.log(1, ...[2, 3, 4], 5)// 1 2 3 4 5该运算符主要用于函数调用function add(x, y) { return x + y;}cons...原创 2018-03-16 11:27:15 · 173 阅读 · 0 评论 -
ES6函数的扩展
1 函数参数的默认值 ES6之前,不能直接为函数的参数指定默认值,方法如下:function log(x, y) { y = y || 'World'; console.log(x, y);}log('Hello') // Hello Worldlog('Hello', 'China') // Hello Chinalog('Hello', '...原创 2018-03-15 16:07:29 · 317 阅读 · 0 评论 -
Proxy
Proxy Proxy用于修改某些操作的默认行为 ,等同于在语言层面做出修改,所以属于”元编程”,即是对编程语言进行编程。Proxy可以理解成,在目标对象之前架设一层”拦截”,外界对对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。原意是代理,表示由它来”代理”某些操作。 ES6原生提供Proxy构造函数,用来生成Proxy实例。var pr...原创 2018-03-29 14:41:14 · 295 阅读 · 0 评论