我正在尝试这样做:
var currentpage = page ? page : null;
但是,如果尚未定义页面,则脚本会引发错误。即使我测试页面是否未定义,只要脚本查找页面就会出错。
为什么以及如何解决这个问题?
更新:使代码示例更清晰;
我正在尝试这样做:
var currentpage = page ? page : null;
但是,如果尚未定义页面,则脚本会引发错误。即使我测试页面是否未定义,只要脚本查找页面就会出错。
为什么以及如何解决这个问题?
更新:使代码示例更清晰;
为此使用typeof
运算符:
var a = (typeof page != 'undefined') ? 'page=' + page: '';
alert(a);
您必须在某处使用var page
或作为函数参数定义了变量function (page)
。如果您在同一范围内的任何地方执行此操作,则该变量将被声明并存在,即使它没有值。如果您尝试使用一些甚至没有在同一范围内声明的变量,那是完全错误的,因为它在任何情况下都无法工作,而 Javascript 抛出错误是完全正确的。
尝试从未声明的变量中读取只会抛出 aReferenceError
并终止脚本。
> x123
ReferenceError: x123 is not defined
更好的问题是,为什么你不知道你的变量是否存在。在正常情况下,这通常意味着你在做坏事。为什么需要检查这种情况?当然,我们可以提出更好的方法。
另一种方法是这样,即使您var a
未定义 else 也会被执行,也就是说您的脚本不会停止执行
if(window.a){
alert('hello');
} else {
alert('this else will fire');
}