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