100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > JavaScript中的作用域 作用域链 预解析

JavaScript中的作用域 作用域链 预解析

时间:2020-04-16 17:54:06

相关推荐

JavaScript中的作用域 作用域链 预解析

作用域:

/* 变量--->局部变量和全局变量* 作用域:就是变量的适用范围* 局部作用域和全局作用域* js中没有快级作用域---一对括号中定义的变量,这个变量可以在大括号外面使用* 函数中定义的变量是局部变量* */// 样例1 --- 全局变量while (true){varnum= 10;break;}console.log(num);// 样例2 --- 全局变量{varnum2= 100;}console.log(num2);// 样例3 --- 全局变量if(true){varnum3= 1000;}console.log(num3);// 样例4 --- 局部变量function fun1() {var num4 = 10000;}console.log(num4);

作用域链:

/*作用域链:变量的使用,从里往外,层层的搜索,搜索到了就可以直接使用了* 层层搜索,搜索到0级作用域的时候,如果还是没有那就报错* */// var num = 10; // 作用域链 级别:0function f1(){// var num = 20; // 作用域链 级别:1function f2(){var num = 30;// 作用域链 级别:2console.log(num);}}f1();

预解析:(变量提升)

JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。

JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。

JavaScript 只有声明的变量会提升,初始化的不会。

/*预解析:就是在浏览器解析代码之前,把变量的声明核函数的声明提前(提升)到该级作用域的最上面*/// 变量的提升// var num;console.log(num);// undefinedvarnum= 100;// 函数的声明被提前了f1();// 使用function f1(){// 声明console.log("设个函数被执行了!");}// 下面不能执行// var f2;f2();var f2 = function () {console.log(this.name);// f2 is not a function}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。