es6中的变量声明

es6中的变量声明

1、var:如果在方法中声明,则为局部变量;如果在全局中声明,则为全局变量。
1、存在变量提升
2、var声明的变量可以先赋值后声明
2、let:和var的写法一样,作用也是声明变量。
1、但是不存在预解析(没有提升)
2、也不允许重复声明,在ES6中新增了块级作用域:只要是花括号,就是一个作用
   域,它不是函数。
3、let声明的时候可以不赋值
4、let声明的变量有块作用域的概念,而var声明的变量没有块作用域的概念,在
   块作用域外也可以使用。
3、const:和let用法一样但区别是:
  相同点:1、不允许重复声明变量
		  2、声明的变量不会预解析(没有声明提升)
		  3、声明的变量存在块级作用域
  不同点:1、 let声明的时候可以不赋值,const声明的时候必须赋值
		  2、let声明的变量,值可以改变,const声明的变量,值不可以改变
		  3、声明的变量存在块级作用域
4、es6中新增加了三种特殊变量声明的方式
分别为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、变量提升示例

function 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、值的改变示例

function 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声明必须赋值

function fn(){
    var a3;
	let b3;
	const c3;//报错,因为const声明变量必须赋值
	console.log(a3)//输出undefined
	console.log(b3)//输出undefined
	console.log(c3)//报错,因为const声明变量必须赋值
}

4、function也可看做变量,也存在变量提升的情况

fn()//正常输出0
function fn(){
    var fn4=0
	console.log(fn4)
}

5、不允许重复声明变量

function 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声明不允许重复
}

带刺玫瑰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值