作用域和作用域链及预解析

  //变量---->局部变量和全局变量,
    //作用域:就是变量的使用范围
    //局部作用域和全局作用域
    //js中没有块级作用域---一对括号中定义的变量,这个变量可以在大括号外面使用
    //函数中定义的变量是局部变量
// 作用域链:变量的使用,从里向外,层层的搜索,搜索到了就可以直接使用了
  //  层层搜索,搜索到0级作用域的时候,如果还是没有找到这个变量,结果就是报错


var num=10;
var num=20;
var str="abc";
function f1(){
	var num2=20;
	function f1(){
		var num2=20;
		function f2(){
			var num2=30;
			console.log(num);
		}
		f2();
	}
	f1();
}
f1();
//预解析:就是在浏览器解析代码之前,把变量的声明和函数的声明提前(提升)到该作用域的最上面
//变量的提升
console.log(num);
var num=100;

//函数的声明
var num=100;
f3();
function f3(){
	console.log("这个函数,执行了");
}

  

猜你喜欢

转载自www.cnblogs.com/liushisaonian/p/9460922.html