博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ECMAscript6——1
阅读量:5140 次
发布时间:2019-06-13

本文共 1445 字,大约阅读时间需要 4 分钟。

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

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

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

 

转载于:https://www.cnblogs.com/watchmen/p/5084175.html

你可能感兴趣的文章
[leetcode]sort list
查看>>
Codeforces 444A DZY Loves Physics(图论)
查看>>
6.8 一般处理语言
查看>>
Android开发工具初体验兼AVD错误的解决方案
查看>>
Entity Framework: SaveChanges()和AcceptAllChanges()方法
查看>>
CSS: 水平居中
查看>>
左旋转字符串
查看>>
[创业趋势]基于P2P模式的大件物品租赁服务Qraft,可租游艇,飞机等[另类Airbnb]
查看>>
【论文笔记】缓冲区溢出漏洞研究与进展
查看>>
Redis 数据类型
查看>>
基于python的性能负载测试Locust-3-脚本编写之Locust类
查看>>
Java动态代理
查看>>
Java中的抽象类
查看>>
unittest框架介绍
查看>>
数组:为什么很多编程语言中数组都从0开始编号?
查看>>
VBS猜数游戏
查看>>
剑指offer_数组中的逆序对
查看>>
MBProgressHUD+FastCall
查看>>
【转】VC 绘图,使用双缓冲技术实现
查看>>
安装Oracle11g出现INS-13001环境不满足最低要求
查看>>