JS作用域

一、变量的作用域

变量的作用域无非就是两种:全局变量和局部变量

js中函数内部可以直接取全局变量。

var t = 1900;
function f() {
	alert(t);
}
f(); //1900

另一方面,在函数外部自然无法读取函数内的局部变量。

function f() {
	var t = 1900;
}
f();
alert(t); //t is not defined

需要注意,在函数内部声明变量的时候,一定要使用var,如果不用的话,实际上声明了一个全局变量

function f() {
	t = 1900;
}
f();
alert(t); //1900

二、如何从外部读取局部变量

如果非要得到函数内函数内的局部变量,正常情况下,是不行的,但可以变通方法实现

在函数的内部 再定义一个函数

function out() {
			var t = 1900;
			function inner() {
				alert(t);
			}
			inner();
		}
		out(); //1900


三、Example

function outerFun() {
	var a = 0;
	alert(a);
}
var a = 4;
outerFun();
alert(a); //0  4

var name = "hello";
function f() {
	var name = "world"
}
f();
alert(name); //hello ,内容并没有改变



原文地址:https://www.cnblogs.com/itmyhome/p/4131343.html