这不起作用,即使在功能块中放置一个简单的打印("foo")也可以.
<script>
var viewportHeight = $(window).height();
var X;
$(function() {
if (viewportHeight >= 600) {
var X = 100;
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
该var关键字用于创建一个变量,其范围分配给function它所在的任何变量.如果它不在函数内部,则其范围是window,使其成为全局变量.如果省略var关键字,js引擎将查找范围链以获得最接近的变量定义.因此,通过var在函数内部使用,您将创建一个名为X该函数本地的新变量.如果省略var函数内的关键字,它将查找范围链并找到var X您在上面定义的关键字.
<script>
var viewportHeight = $(window).height();
var X;
$(function() {
if (viewportHeight >= 600) {
X = 100; //don't use var if you want to access the above X
}
});
</script>
Run Code Online (Sandbox Code Playgroud)