初识 es6

es6 可能出来已经有一段时间了,但是我到今天才发现他的好,却不是很了解他,也不知道各个浏览器的兼容性怎么样?今天就把他们都弄明白。

 

新增命令

let ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效(什么是代码块呢,就是用{}包起来的代码)

例子:

1.{ 

  var a=1;

  let b=2;

}

console.log(a);//1

console.log(b);//undefined

2.var temp=123;

 if(true){

  temp=456;

let temp ;//报错

}

ES6明确规定,如果区块中存在letconst命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。

块级作用域写法

{

  let tmp

}

 

函数能不能在块级作用域之中声明,是一个相当令人混淆的问题。

ES5 规定,函数只能在顶层作用域和函数作用域之中声明,不能在块级作用域声明。  可以在代码块里调用函数

 

ES6 引入了块级作用域,明确允许在块级作用域之中声明函数。

 

现在有一个提案,使得块级作用域可以变为表达式,也就是说可以返回值,办法就是在块级作用域之前加上do,使它变为do表达式。

 let x=do{

   let t=f();

  t*t+1;

}

x将得到整个块级作用域的返回值

posted @ 2017-02-15 10:31  daidai201  阅读(121)  评论(0编辑  收藏  举报