es6中的变量声明
1、var:如果在方法中声明,则为局部变量;如果在全局中声明,则为全局变量。
复制代码
1
2
31、存在变量提升 2、var声明的变量可以先赋值后声明
2、let:和var的写法一样,作用也是声明变量。
复制代码
1
2
3
4
5
6
71、但是不存在预解析(没有提升) 2、也不允许重复声明,在ES6中新增了块级作用域:只要是花括号,就是一个作用 域,它不是函数。 3、let声明的时候可以不赋值 4、let声明的变量有块作用域的概念,而var声明的变量没有块作用域的概念,在 块作用域外也可以使用。
3、const:和let用法一样但区别是:
复制代码
1
2
3
4
5
6
7相同点:1、不允许重复声明变量 2、声明的变量不会预解析(没有声明提升) 3、声明的变量存在块级作用域 不同点:1、 let声明的时候可以不赋值,const声明的时候必须赋值 2、let声明的变量,值可以改变,const声明的变量,值不可以改变 3、声明的变量存在块级作用域
4、es6中新增加了三种特殊变量声明的方式
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14分别为function,import和class 1、function声明的函数变量也存在变量提升,用法有两种,分别为: (1)var a=function(){...} (2)function a(){...} 注意:第一种方式不能先调用,后声明,只能先声明函数,然后调用。第二种方式 定义函数可以先调用,后声明。 2、import声明的变量主要用于引用文件等操作,例如: (1)import a from "xxx" 注意:此方法通常在script标签最顶部使用。 3、class声明类,作为对象的模板。通过class来定义一个类: (1)class a {...} 使用new方式得到一个实例对象 var p=new StdInfo(); 注意:class声明的类,类型也是function
示例:
1、变量提升示例
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14function fn(){ a1=2 var a1 console.log(a1)//输出2 a1=2 let a1 console.log(a1)//报错,因为let不存在变量提升 a1=2 const a1 console.log(a1)//报错,因为const不存在变量提升 }
2、值的改变示例
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14function fn(){ var a2=4 a2=6 console.log(a2)//输出6 let a2=4 a2=6 console.log(a2)//输出6 const a2=4 a2=6 console.log(a2)//报错,因为const声明的变量不能改变 }
3、const声明必须赋值
复制代码
1
2
3
4
5
6
7
8
9function fn(){ var a3; let b3; const c3;//报错,因为const声明变量必须赋值 console.log(a3)//输出undefined console.log(b3)//输出undefined console.log(c3)//报错,因为const声明变量必须赋值 }
4、function也可看做变量,也存在变量提升的情况
复制代码
1
2
3
4
5
6fn()//正常输出0 function fn(){ var fn4=0 console.log(fn4) }
5、不允许重复声明变量
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14function fn(){ var a=0 var a=1 console.log(a)//输出1 let a=0 let a=1 console.log(a)//报错,因为let声明不允许重复 const a=0 const a=1 console.log(a)//报错,因为const声明不允许重复 }
最后
以上就是欣喜曲奇最近收集整理的关于es6中的变量声明es6中的变量声明示例:的全部内容,更多相关es6中内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复