即使在功能块中放置一个简单的打印(“foo”)也能正常工作,但这不起作用。
<script>
var viewportHeight = $(window).height();
var X;
$(function() {
if (viewportHeight >= 600) {
var X = 100;
}
});
</script>
答案 0 :(得分:8)
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>
答案 1 :(得分:2)
只是我的两分钱,但你可以将整个事情写成一个单独的表达。
var X = $(window).height() >= 600 ? 100 : null;
这似乎是一个好的oll短手的地方