es6
UNDERCOVERj
这个作者很懒,什么都没留下…
展开
-
es笔记(解构赋值)
数组的解构赋值let [a, b, c] = [1, 2, 3];let [foo, [[bar], baz]] = [1, [[2], 3]];let [ , , third] = ["foo", "bar", "baz"];let [x, y, ...z] = ['a'];x // "a"y // undefinedz // []这样的写法属于模式匹配,要是没有匹配到,返回unde原创 2017-03-30 22:19:09 · 1343 阅读 · 0 评论 -
箭头函数
(1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。(2)不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。(3)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用Rest参数代替。(4)不可以使用yield命令,因此箭头函数不能用作Generator函数。function foo() { var id=3原创 2017-04-06 15:19:47 · 1160 阅读 · 0 评论 -
函数
变量默认值不能用let或const再次声明参数默认值是惰性求值的参数默认值可以与解构赋值的默认值,结合起来使用指定了默认值以后,函数的length属性,将返回没有指定默认值的参数个数。也就是说,指定了默认值后,length属性将失真。如果设置了默认值的参数不是尾参数,那么length属性也不再计入后面的参数了。(function (a = 0, b, c) {}).length // 0原创 2017-04-06 13:44:09 · 256 阅读 · 0 评论 -
Set和Map数据结构
Set成员的值都是唯一的var arr = [1,2,2,2,3,4,5,5,5]var arr2 = [...new Set(arr)]arr2//[1,2,3,4,5]用于去重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原创 2017-04-05 20:35:18 · 281 阅读 · 0 评论 -
Symbol数据类型
概述由于对象的属性只有字符串,而想要为一个对象添加方法时,出现重名就比较麻烦了,故用可symbol类型当属性名,这种属性名是独一无二的let s = Symbol();typeof s// "symbol"Symbol函数前不能使用new命令,否则会报错Symbol函数可以接受一个字符串作为参数,参数为对象要先调用toString()方法Symbol值不能与其他类型的值进行运算,会报错。S原创 2017-04-05 19:43:38 · 1227 阅读 · 0 评论 -
对象扩展
属性的简介写法var bar="bar"var obj={bar}console.log(obj)//'bar':'bar'ES6 允许字面量定义对象let a = 'b'let obj={ [a]:'v'}console.log(obj)//'b':'v'let a = 'b'let obj={ [a]:'v'}console.log(obj['b'])//原创 2017-04-05 12:50:15 · 219 阅读 · 0 评论 -
数组扩展
类似数组只要是部署了Iterator接口的数据结构,Array.from都能将其转为数组。let arr={ '0':'a', '1':'b', '2':'c', length:3}let b=[].slice.call(arr)console.log(b)//['a','b','c']//es6:Array.from(arr)-------------原创 2017-04-04 22:33:16 · 375 阅读 · 0 评论 -
es6数值扩展
es5开始严格模式下八进制不再允许用前缀0表示,es6明确表示要用0o前缀Number.isFinite(), Number.isNaN() 与全局方法不同的是,全局方法会先将变量转为数字,而Number对象上的方法只对数值有效es6逐步减少全局性方法,使得语言逐步模块化。Number.isInteger()用来判断一个数是不是整数,3.0和3的效果一样Number.EPSILON是一个极小原创 2017-04-04 19:46:35 · 262 阅读 · 0 评论 -
es6字符串的扩展
JavaScript字符表达式'\z' === 'z' // true'\172' === 'z' // true'\x7A' === 'z' // true'\u007A' === 'z' // true'\u{7A}' === 'z' // truecodePointAt()fromCodePoint()字符串遍历for…of - at()方法,可以识别Unicode编号大于0原创 2017-03-30 22:40:18 · 360 阅读 · 0 评论 -
for...of和for...in
for...of循环可以使用的范围包括数组、Set 和 Map 结构、某些类似数组的对象(比如arguments对象、DOM NodeList 对象)、后文的 Generator 对象,以及字符串。const arr = ['red', 'green', 'blue'];for(let v of arr) { console.log(v); // red green blue}for(le原创 2017-04-06 18:44:28 · 664 阅读 · 0 评论