0

我正在尝试这样做:

    var currentpage = page ? page : null;

但是,如果尚未定义页面,则脚本会引发错误。即使我测试页面是否未定义,只要脚本查找页面就会出错。

为什么以及如何解决这个问题?

更新:使代码示例更清晰;

4

4 回答 4

1

为此使用typeof运算符:

var a = (typeof page != 'undefined') ? 'page=' + page: '';
alert(a);
于 2012-10-15T09:45:17.447 回答
1

您必须在某处使用var page或作为函数参数定义了变量function (page)。如果您在同一范围内的任何地方执行此操作,则该变量将被声明并存在,即使它没有值。如果您尝试使用一些甚至没有在同一范围内声明的变量,那是完全错误的,因为它在任何情况下都无法工作,而 Javascript 抛出错误是完全正确的。

于 2012-10-15T09:45:45.613 回答
1

尝试从未声明的变量中读取只会抛出 aReferenceError并终止脚本。

> x123
ReferenceError: x123 is not defined

更好的问题是,为什么你不知道你的变量是否存在。在正常情况下,这通常意味着你在做坏事。为什么需要检查这种情况?当然,我们可以提出更好的方法。

于 2012-10-15T09:49:12.987 回答
0

另一种方法是这样,即使您var a未定义 else 也会被执行,也就是说您的脚本不会停止执行

 if(window.a){
      alert('hello'); 
    } else {
      alert('this else will fire');
    }
于 2012-10-15T09:53:32.533 回答