首页 > 其他 > 详细

ES6

时间:2017-03-02 17:21:14      阅读:291      评论:0      收藏:0      [点我收藏+]

目录:

  变量

  扩展运算符

  for…of…

  Set


 

打开node,输入node,进入学习吧。

之前我们声明变量用function和var,ES6了 一共有6种声明变量的方法,let和const加上import和class。var命令和function命令声明的全局变量,所以我们创建一个全局对象可以
var a="我爱代码"
//a可以看作是window的属性
console.log(window.a)

//node上我们就别window了,要报错的。全局是global
在浏览器中,顶层作用域就是全局作用域。var命令和function命令依旧是顶层对象的属性;另一方面规定,let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。也就是说,从ES6开始,全局变量将逐步与顶层对象的属性脱钩。

let,只在它所在的代码块中有效;
var a = [];
for (let i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
} a
[6](); // 6

let不存在变量提升:一句话解释,没声明别用,报错报错,那可不是未初始化

console.log(foo); // 输出undefined
console.log(bar); // 报错ReferenceError
var foo = 2;
let bar = 2;
暂时性死区:在这个let块级作用域内,未声明别用;
var tmp = 123;
if (true) {
tmp = ‘abc‘; // ReferenceError
let tmp;
}
不允许重复声明:相同的作用域别重复声明,以前会覆盖,现在是boom;
块级作用域外要用块级作用域内的值可以使用do表达式:
let x = do {
  let t = f();
  t * t + 1;
};

 const和let差不多,const声明一个只读的常量。一旦声明,常量的值就不能改变

const PI = 3.1415;
PI // 3.1415

PI = 3;
// TypeError: Assignment to constant variable.

...:扩展运算符,功能非常强大;

函数调用中使用展开运算符
function test(a, b, c) { }
var args = [0, 1, 2];
test.apply(null, args);
//现在用es6的...
function test(a,b,c) { }
var args = [0,1,2];
test(...args);

 合并两个对象

let a={x:1,y:2};
let b={z:3};
let ab={...a,...b};
console.log(ab) //{x:1,y:2,z:3}
将一个对象插入另外一个对象当中
let z={a:3,b:4};
let n={x:1,y:2,...z};
console.log(n); //{x:1,y:2,a:3,b:4}

Symbol:第7中数据类型,表示独一无二的值。前六种是:Undefined、Null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。

var s1 = Symbol(‘foo‘);//后面传个字符串好识别s1,s2
var s2 = Symbol(‘bar‘);

s1 // Symbol(foo)
s2 // Symbol(bar)
typeof s1  //Symbol
s1.toString() // "Symbol(foo)"
s2.toString() // "Symbol(bar)"

for…of循环:和for in 感觉没啥区别,可以遍历对象和数组;

let words=[2,2,2,2]
var uniqueWords = new Set(words);
for (var word of uniqueWords) {
  console.log(word);//2
}
for (var word in uniqueWords) {
  console.log(word);//别开玩笑了,还是有点区别的,for in 咋遍历Set呢
}

 Set:它类似于数组,但是成员的值都是唯一的,没有重复的值。

  • add(value):添加某个值,返回Set结构本身。
  • delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
  • has(value):返回一个布尔值,表示该值是否为Set的成员。
  • clear():清除所有成员,没有返回值。
  • keys():返回键名的遍历器
  • values():返回键值的遍历器
  • entries():返回键值对的遍历器
  • forEach():使用回调函数遍历每个成员
var s=new Set([1,2,3,4,4]);
console.log(s);//1234

还可以去重:

var a=[1,3,4,5,6,3];
var b=[...new Set(a)]; //去重

 

 

/*占位符*/

ES6

原文:http://www.cnblogs.com/leggod/p/6490683.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!