Es6-->Let&const命令

在 ECMAScript 中,引用类型是一种数据结构,用于将数据和功能组织在一起。新对象是使用 new 操作符后跟一个构造函数来创建的。

var person = new Object();

这行代码创建了 Object 引用类型的一个新实例,然后把该实例保存在变量 person 中。使用的构造函数是 Object ,为新对象定了默认的属性和方法。

本章将介绍几种常见的引用类型数据:Object、Array、Date、RegExp、Function等。

let&const命令

ES6 中新增 let 命令来声明一个变量,仅在该作用域内有效。解决了 变量提升 和 变量泄露 的问题。

问题1: 变量提升问题

var tmp = new Date();
function f() {
    console.log(tmp);
    if(false) {
        var tmp = 'hello world!';
        //let tmp = 'hello world!';        //Sun Jul 23 2017 14:29:44 GMT+0800 (中国标准时间)
    }
}
f();                 //undefined

上面代码的原意是,if 代码块的外部使用外层的 tmp 变量,内部使用内层的 tmp 变量。但是,函数 f 执行后,输出结果为 undefined ,原因在于变量提升,导致内层的 tmp 变量覆盖了外层的 tmp 变量。

问题2: 变量泄露

var s = 'hello';

for (var i = 0; i < s.length; i++) {
//for(let i = 0; i < s.length; i++) {       //Uncaught ReferenceError: i is not defined
  console.log(s[i]);
}

console.log(i);          // 5

上面代码中,变量 i 只用来控制循环,但是循环结束后,它并没有消失,泄露成了全局变量。


  转载请注明: 张成的博客 Es6-->Let&const命令

 上一篇
Nodejs简介 Nodejs简介
1.1.1 nodejs简介node是JavaScript语言的服务器运行环境。 所谓的‘运行环境’有两层意思:首先,JavaScript语言通过node在服务器上运行,在这个意义上,Node有点像JavaScript虚拟机;其次,Node
2018-10-30
下一篇 
Node的开放式模块[npm] Node的开放式模块[npm]
npmnpm有两层含义:一层是node的开放式模块登记和管理系统,官网为npmjs.com。另一层含义是node默认的模块管理器,是一个命令行下的软件,用来管理和安装node模块。 npm不需要单独安装,在安装node的时候,连带一起安装了
2018-10-30
  目录