您当前的位置: 首页 >  Java

dawn

暂无认证

  • 8浏览

    0关注

    204博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

JavaScript(9):var、let、const

dawn 发布时间:2022-02-08 19:13:26 ,浏览量:8

  1、严格性   ①、如果一个变量在未var声明之前使用,浏览器报告undefined。   ②、如果一个变量在未let或者const声明之前使用,浏览器报告错误。   一个变量在未做任何声明之前使用会报告错误,比如 

    console.log(i);

  浏览器会报告错误:Uncaught ReferenceError: i is not defined。   如果在var声明之前使用是:

	console.log(i);
	var i;

  浏览器则会输出:undefined,不会报告错误。   如果是在let和const声明之前使用:

	console.log(i);
	let i;

  或者

	console.log(i);
	const i=1;

  则会报告错误:Uncaught ReferenceError: Cannot access 'i' before initialization。   

  2、声明   ①、var声明的变量可以重复的,即使是在同一作用域。   ②、let和const在同一作用域当中是不能重复声明的。

	var i=1;
	var i=2;
	let j=3;
	// let j=4;//报告错误
	const k=5;
	const k=6;//报告错误

 

  3、作用域   ①、var声明的变量要么是全局的,要么就是函数级的,没有块级作用域之说。   ②、let、const属于块级作用域,一对{}就是一个块。

  var的例子:

	var i=1;
	{
		var i=2;
		console.log('在块中输出i:'+i);
	}
	(function test(){
		var i=3;
		console.log('在函数中输出i:'+i);
	})();
	console.log('在全局中输出i:'+i);

  输出:

    在块中输出i:2
    在函数中输出i:3
    在全局中输出i:2

  let的例子:

	let j=1;
	{
		let j=2;
		console.log('在块中输出j:'+j);
	}
	(function test(){
		let j=3;
		console.log('在函数中输出j:'+j);
	})();	
	console.log('在全局中输出j:'+j);

  输出:

    在块中输出j:2
    在函数中输出j:3
    在全局中输出j:1

  const的例子:

	const k=1;
	{
		const k=2;
		console.log('在块中输出k:'+k);
	}
	(function test(){
		const k=3;
		console.log('在函数中输出k:'+k);
	})();	
	console.log('在全局中输出k:'+k);//在全局中输出

  输出:

    在块中输出k:2
    在函数中输出k:3
    在全局中输出k:1

  在《JavaScript(8):即时函数》中经典面试题中,有下面的代码

	for(var i=0;i            
关注
打赏
1664252102
查看更多评论
0.3057s