繁体   English   中英

Javascript-全局变量和全局范围内的变量是否不同(在jsfiddle中)?

[英]Javascript - Are global variables and variables in global scope different (in jsfiddle)?

全局变量和全局范围内的变量是否不同? 请参见下面的代码或JSfiddle实现-http: //jsfiddle.net/2ngj9rqa/

a = 10;
var b = 20;

function x() {
a = 20;
}

alert(window.a);
alert(window.b);

这是JSFiddle中的一个技巧,如果不选择no wrapb被包装在onload但不会包装在window ,这很好。 也可以在punker中尝试同样的方法。

您编写的代码在所有主流浏览器上都可以正常工作,因为它被jsfiddle中的onload包裹了,所以无法正常工作.a和b都是全局变量,并且都在全局范围内。 您可以在代码的任何位置访问它们,除非您在函数自己的作用域内引入一个具有相同名称的变量。有一种称为变量作用域和提升的方法。声明变量或为其赋值( 使用var关键字ofcourse )。 了解有关变量和函数提升的更多信息,因此,您的代码等效于此:

var b;

a = 10;
b = 20;

function x() {
a = 20;
}

alert(window.a);
alert(window.b);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM