第2节:新的声明方式

第2节:新的声明方式

1,以前只有一种声明方式var,ES6对声明进行了扩展,现在有三种声明方式。
首先从字面理解:
①var:variable的简写,可以理解成变量的意思
②let:英文中是“让”的意思,也可以理解为一种声明的意思
③const:英文中也是常量的意思,在ES6也是用来声明常量的,常量你可以简单理解为不变的量

2,var声明
var在ES6里是用来审计全局变量的,做一个简单实例并console

let a = "xsm";
console.log(a);

xsm在控制台已经被打印出来了,如何理解它的作用是声明全局变量?用匿名函数给它进行包裹,然后在匿名函数中调用a变量,看能不能调用到。

var a = "xushuming"
window.onload = function () {
    console.log(a);
}

控制台输出了xushuming,证明var确实是全局的,如果觉得不够直观,还可以用区块的方式进行调用测试:

var a = 2;
{
    var a = 3;
}
console.log(a);

这时打印出来的是3,因为var是全局声明的。

3,let局部声明
同上的例子,试一下在区块里用let声明

var a = 2;
{
    let a = 3;
}
console.log(a);

这时控制台打印出来的值是2。如果只在区块里声明,不在外部声明,我们打印a就会报错,显示找不到变量。

{
    let a = 3;
}
console.log(a);

这两个例子说明let是局部变量声明,let声明只在区块内起作用,外部是不可以调用的。
其实let是防止你的数据污染,在大型项目中是非常有用处的。看下面循环的例子,你能发现let的好处。

4,用var声明的循环

for(var i = 0;i < 10;i++){
    console.log('循环体中:'+ i);
}
    console.log('循环体外:'+ i);

在控制台发现循环体外的i变量被污染了,如果在外部使用i时就会出现问题。我们再利用let声明就可以解决这个问题。

for(let i = 0;i < 10;i++){
    console.log('循环体中:'+ i);
}
    console.log('循环体外:'+ i);

会发现控制台报错了,找不到循环体外的i变量。习惯用let声明,减少var声明去污染全局空间,在vue的使用中也要注意这点。

5,const声明变量
简单来说就是从声明开始,这个变量始终不变,就需要用const进行声明。
首先来段用const声明错误的代码:

const  a = 'xsm';
var a = 'xushuming';
console.log(a);

在编译过程中就已经报错了,因为const声明的变量是不可以改变的。

你可能感兴趣的:(ES6)