ES6入门(一)

来源:互联网 发布:flower dance知乎 编辑:程序博客网 时间:2024/06/06 23:52

在ES6的标准下,声明变量有6中方式:分别是var 、function 、let 、const 、class 、import,其中var 、function 是es5标准下声明变量的两种方式。该篇主要介绍一下let const声明变量时的注意事项及其特性:

1、let声明变量(块级作用域)

(a)、用法与var声明变量类似,只是其声明变量的作用域在let所在的代码块中。在for循环中尤其明显。

for(var i=0;i<5;i++){//dosomething}console.log(i);//5for(let i=0;i<5;i++){//dosomething}console.log(i);//i is not defined

(b)、不存在变量提升,在es5下使用var 声明变量存在变量声明提前的情况。

console.log(name);//undefinedvar name = "张三";console.log(age);//报错ReferenceErrorlet age = 18;

(c)、只要块级作用域中存在let命令,其块级作用域中的变量就受外界同名变量的影响,而且在有let声明的变量中,必须先声明在使用;

var age = 18;if(true){age =19;//报错let age;}
只能这么使用:
if(true){let age;age=18;}

(d)、在相同的作用域中不能有同名的变量存在。不论其中有一个变量是用var声明的还是在函数中传入的。

(e)、块级作用域可以嵌套,但是外层的作用域无法访问内层作用域的变量。

{{{{let age=18;}console.log(age);//报错}}}
2、const声明变量(块级作用域)

const声明变量其实与let声明变量是没有什么太大的区别,主要的区别是:

const声明的是一个只读常量,修改常量值会报错。实际上不是const的值不能改变,而是变量指向内存的那个地址不能改变。

const声明的常量,必须在一开始就初始化,不能等到后面在赋值。

原创粉丝点击