龙空技术网

善变的js-作用域,变量提升

烟雨漫 193

前言:

而今小伙伴们对“js的块级作用域”都比较注重,朋友们都想要分析一些“js的块级作用域”的相关知识。那么小编在网摘上搜集了一些对于“js的块级作用域””的相关文章,希望各位老铁们能喜欢,朋友们一起来了解一下吧!

变量的声明var 声明变量,ES6之前,js只有全局作用域和函数作用域,没有块级作用域。所以非函数代码块(如:if代码块)限制不了var所声明变量的访问范围。let 声明变量,ES6新定义的关键字,可以用来定义块级作用域变量。 const 声明常量,可以用来声明块级作用域常变量。

2. 变量、函数提升

js经典面试题

	var a = "www" console.log(add) //function 方法体可以被提升 var add = "变量"	function add(){		console.log(a) //undefined 函数作用域内,变量a被提升,		var a = 10;		console.log(a) //10	}	console.log(a) //www,此时为全局变量a

var 声明的变量会被提升到作用域顶部,但是值不会提升。function定义的整个方法都会被提升。

3. 异同点

let、 const 不可以重复声明,声明变量不会被提升,作用在块级作用域,声明之后(暂时性死区)。

var可以重复声明,声明变量会被提升到作用域顶端。

标签: #js的块级作用域