著名的网站建设公司,怎么做商业服务网站,开发网站用什么语言好,婚庆公司取名大全集一#xff1a;变量作用域 在js代码中每个变量都是有自己的作用域的#xff0c;js中不像C语言有块级作用域的概念#xff0c;取而代之的是函数作用域#xff0c;看如下代码#xff1a; var scopeglobal; function init(){ alert(scope);var scope local…一变量作用域 在js代码中每个变量都是有自己的作用域的js中不像C语言有块级作用域的概念取而代之的是函数作用域看如下代码 var scopeglobal; function init(){ alert(scope);var scope local; alert(scope); } function testScope(){ alert(scope); } 在上述代码中第一个scope输出的是undefined第二个scope输出的是local第三个scope中输出的是global。我们首先分析var scopeglobal;这个是一个全局变量var scope local;这个是一个局部变量作用域在函数init体内但是js中的声明函数是先声明后赋值的并且声明永远置顶并且在函数体内如果存在变量名称与全局变量名称相同会优先取局部变量因此上面的代码可以修改为 var scopeglobal;function init(){ var scope;alert(scope);scope local;alert(scope);}function testScope(){alert(scope);} 基于以上代码就可以得出之前的结论。 但是注意一下如果代码变成如下 var scopeglobal;function init(){ alert(scope);scope local;alert(scope);}function testScope(){alert(scope);} 那么输出结果会globallocallocal。因为在函数体内如果变量不用var声明那么这个变量就是全局变量会覆盖掉之前var scopeglobal;声明的全局变量因此会在testScope函数中值会变成local。 因此在实际编码中建议将变量声明放在函数顶部而不是靠近使用这个变量的地方这样对函数的作用域会有清晰的认识。转载于:https://www.cnblogs.com/missingCoder/p/6252056.html