JS中声明变量的三种方式 const var let

JavaScript中有三种声明变量的方式:const  var let。

  • const:用于声明常量。注意:定义的变量的时候,必须同时初始化,且其值之后不可以修改。 
    		const PI=3.14;
    		// const a;//报错。没有赋初值。
    		console.log('const PI:',PI);//输出
    		// PI = 3.1415926;//报错。不能赋值给一个常量。


  • var:最常用的声明变量关键字。 定义的变量的时候,若没有初始化,不报错,会输出undefined。其值之后可以修改。
    var可以用来声明全局变量,也可以声明局部变量,依据它们声明的位置:

  1.  全局变量:在函数外定义的变量;(注意:若没有使用关键字声明的变量,默认为全局变量。)作用域是整个代码文件。
  2.  局部变量:在函数内定义的变量。作用域是当前的函数内部。

                var b ;//不报错。
		console.log('var b:',b);//输出undefined
		b = 1 ;//赋初值
		console.log('var b,外部赋值1:',b);//输出1

		//在代码块里的情况
		{
			// console.log('var b,代码块的变量可以进入代码块内:',b);//输出1
			var b=2;//重新定义
			console.log('var b,重新赋值后:',b);//输出2
		}
		console.log('var b,重新赋值后在代码块外的值:',b);//输出2

		//在函数里的情况
		function varFun(){
			console.log('var b,全局变量b:',b);//输出2
			var b=3;//局部变量b
			console.log('var b,局部变量b:',b);//输出3,同时上一个输出undefined(具体原因,见文末)
			var b2 = 33;//局部变量b2,在函数外获取不到值
			b3 = 333;//全局变量b3,在函数外可以获取到值

		}
		varFun();//执行函数
		console.log('var b,函数执行后,函数外的b是全局变量b的值:',b);
		// console.log('函数内var定义的变量b2=33,在外部获取不到:',b2);//报错,b2 为定义。
		console.log('函数内确实关键字定义的变量b3=333,会被当做全局变量:',b3);//输出333

  • let块级作用域 。在块级{}里面用let定义的变量,离开当前的块{}之后,就不能使用(有点像局部变量,但作用域不一样)。
    注意:{...}一对花括弧就就是一个特定的代码块,包括直接的{},流程语句的{},函数的{},....。函数声明时本身就带有{},也是属于一个代码块。

    	        var c=11;
    		{
    			let c=12;
    			console.log('let c=12,b的值:',c);//输出12
    		}
    			console.log('代码块外c的值:',c);//输出11

    关于var声明变量,在函数里面的那个问题:】原因是:function作用域里的局部变量声明会被提前到最前面。详细的可见:http://www.cnblogs.com/silentjesse/p/4024536.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值