作用域 JavaScript以函数为作用域 函数的作用域在函数未被调用之前,已经创建 函数的作用域存在作用域链,并且也是在被调用之前创建 示例一 xo = "alex"; function func(){ // var xo = 'eric'; function inner(){ // var xo = 'tony'; console.log(xo); } inner() } func() 结果 Alex 示例二 xo = "alex"; function func…
1.JS无块级作用域 <script> function Main(){ if (1==1){ var name = "alex"; } console.log(name); } Main(); </script>执行结果:{}即块级作用域. alex 2.JS采用函数作为作用域链 <script> function Main(){ var innerValue = "alex"; } Main(); console.log(in…
function foo() {console.log( a ); // 2不是3} function bar() {var a = 3;foo();} var a = 2;bar(); js中的作用域就是词法作用域 词法作用域是一套关于引擎如何寻找变量以及会在何处找到变量的规则. 词法作用域最重要的特征是它的定义过程发生在代码的书写阶段( 假设你没有使用eval() 或 with) 而动态作用域并不关心函数和作用域是如何声明以及在何处声明的, 只关心它们从何处调用. 换句话说, 作用域链是基于…
作为前端小白,总是对JS的作用域有点迷糊,这里稍微研究了一下分享出来,希望和我一样的小白可以学的一点 首先是一个经典的例子: var a=0,b=0; for (var i = 0; i < 10; i++) { a = 2 if (true) { b = 3; }} console.log(a,b); //2 3 这里肯定输出2,3 但是我们加上var后结果依然会这样: var a=0,b=0; for (var i = 0; i < 10; i++) { var a = 2 if (…
变量的作用域也是前端面试题常考的一个问题,掌握下面几个规律可以帮你更好的理解js的作用域. 1.作用域优先级遵循就近原则,函数内部的作用域优先级大于外部 var a=456; var b=111; function fn () { var a=123; a=798; console.log(a); //输出789 console.log(b); //输出111 } fn(); 2.变量预处理(预解析),当你写了一个变量,并且赋值,期间发生了两个过程a.先声明一个变量,然后把声明语句放到当前作用域…