0

这不起作用,即使在功能块中放置一个简单的 print ("foo") 确实有效。

<script>

var viewportHeight = $(window).height();
var X;

$(function() {

    if (viewportHeight >= 600) {
         var X = 100;
       }
});
</script>
4

2 回答 2

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>
于 2012-05-15T18:37:32.103 回答
2

只是我的两分钱,但你可以把整个事情写成一个表达式。

  var X = $(window).height() >= 600 ? 100 : null;

这似乎是一个很好的速记的地方

于 2012-05-15T18:40:05.777 回答