ECMAscript6——1

1.概述

ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,ECMAScript 6的目标,是使得JavaScript可以用来编写复杂的应用程序、函数库和代码的自动生成器(code generator)。

2.使用ECMAscript6的方法

目前,V8引擎已经部署了ECMAscript6的部分特性。使用node.js   0.11版,就可以体验这些特性。node.js   0.11版的一种比较方便的使用方法,是使用版本管理工具nvm。下载nvm后,进入项目目录,运行下面的命令,激活nvm.

source   nvm.sh

然后,指定node运行版本

nvm use  0.11

最后,用--harmony参数进入node运行环境,就可以在命令行下体验ECMAscript6了。

node--harmony

另外,可以使用Google的Traceur(在线转换工具),将ES6代码编译为ES5.

安装

npm   install   -g   traceur

运行ES6文件

traceur   /path/to/ES6

将ES6文件转为ES5文件

traceur    --script   /path/to/ES6     --out    /path/to/ES5

3.数据类型

(1)let命令

概述:ECMAscript6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。

{

   let  a = 10;

  var  b = 1;

}

a  // ReferenceError:a is not defined

b // 1

var a = [];

for (var i = 0; i < 10; i++) {

var c = i;

a[i] = function () {

console.log(c);

};

}

a[6]();

如果使用var结果就输出9,使用let结果就输出6.

注意:let不允许在相同作用域内重复声明同一个变量!

(2)块级作用域

let为Javascript新增了块级作用域。

function f1() {

 let n = 5;

 if (true) {

 let n = 10;

}

console.log(n); // 5

}

声明了变量n,运行后输出5。这表示外层代码块不受内层代码块的影响。如果使用var定义变量n,最后输出的值就是10。块级作用域的出现,实际上使得获得广泛应用的立即执行函数(IIFE)不再必要了。

IIFE写法

(function(){

      var   tmp = ...'

      ...

}())

块级作用域写法

{

   let tmp = ...'

   ...

}

(3)不存在变量提升

let声明的变量不存在“变量提升”现象。

console.log(x);

let x = 10;

这是会报错的,表示没有声明,如果用var声明x,就不会报错,会输出undefined。

(4)const命令

const也用来声明变量,但是声明的是常量。一旦声明,常量的值就不能改变。

const PI = 3.1415;

PI  //  3.1415

PI = 3;

PI  // 3.1415

const PI = 3.1;

PI // 3.1415

上面改变常量的值是不起作用的!

注意:对常量重新赋值不会报错,只会失败。

 
posted @ 2015-12-28 22:03  小汤圆。  阅读(133)  评论(0编辑  收藏  举报