ES6第二节:新的声明方式

通过上一节的环境搭建完成,接下来我们就可以愉快的探索ES6的新世界了!下面我们从新的声明方式开始:

在ES6里新加了两种声明方式:let 和 const,以前我们都是用var去作声明,接下来我们一一比较下他们的区别:

一、var  :全局声明

       我们用var 来声明一个msg的变量

1 var msg = "hello es6";
2 console.log(msg);    

这时我们可以看到控制台输出的是 hello es6,接下来我们在下面用区块的方式再声明一个msg,并给它赋值

1 var msg = "hello es6";
2 console.log(msg);   
3 {
4     var msg = "哈罗ES6"
5 }
6 console.log(msg);

此时控制台输出的是  哈罗ES6  ,这说明var并没有受区块的局部声明影响,被污染了

一、var  :局部声明

我们直接拿上面的代码来作演示,将var改成let,看控制台输出的结果 

1 let msg = "hello es6";
2 console.log(msg);   
3 {
4     let msg = "哈罗ES6"
5 }
6 console.log(msg);

我们看到控制台输出的结果是  hello es6,跟上面var的结果不一样,说明区块里的let声明并未受到影响,接下来我们再来看一个例子

1 var msg = "hello es6";
2 console.log(msg);
3 {
4     let msg2 = "哈罗ES6"
5 }
6 console.log(msg2);

这次我们将区块里的msg改成了msg2,并且输出它,可是控制台却报错了:

Uncaught ReferenceError: msg2 is not defined     

提示我们找不到msg2,说明msg2在区块里只是局部声明了,对外面的大环境无影响

三、const:声明常量

常量的意思是以后不会再变了,下面,我们同样用例子来说明:

1 const msg = "hello es6";
2 
3 console.log(msg);   //控制台输出了 hello es6
1 const msg = "hello es6";
2 
3 var msg = "哈罗ES6";
4 
5 console.log(msg);

这次我们用npm run build编译始终报错,无法编译了,原因就是我们const声明的变量是不可以改变的

总结:

         三种声明方式:

        var  全局的,会污染到区块,同时区块里的也会污染到外面的

        let   局部的,不会受污染,区块里的和外面的互不干扰

        const  声明常量,声明后就不能改变了

posted @ 2019-01-22 10:22  安想  阅读(218)  评论(0编辑  收藏  举报