JS-作用域

Posted yangjiale

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS-作用域相关的知识,希望对你有一定的参考价值。

 

 

变量提升和声明函数提升

变量提升

var x;
x=10;
alert(x);	//输出10
//变量提升
x=10;
var x;
alert(x);	//输出10

以上的两段代码都可正常输出。第二段的var x;在第二行,但在第一行就使用了x,实际上编译器在编译时会把变量声明函数声明提前,称为变量提升函数声明提升

声明函数提升

//函数声明提升
functionName();	//可以在函数声明前就调用
function functionName()
	//your code

加var和不加var的区别

function t1()
	//在赋值时,先检测当前作用域有没有a,如果有则赋值;否则在作用域链顶级(例如window)声明变量并赋值
	var a=1; //在当前作用域声明的变量(局部变量)
	b=1; //在window下声明的变量(全局变量)

以上是关于JS-作用域的主要内容,如果未能解决你的问题,请参考以下文章

前端:如何理解 JS 的作用域和作用域链?说说闭包的两个应用场景

js 作用域作用域链

什么是块级作用域,为什么说js没有块级作用域

js函数作用域和块级作用域的区别

js 函数作用域, 块级作用域和词法作用域

白话JS作用域,作用域,作用链详解