我试图构建一个脚本来检查名为 result 的url变量是否存在,如果存在,则会检查该值是否等于成功。
我尝试了以下操作,但如果结果不存在则会将我的脚本错误定义为未定义
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
var first = getUrlVars()["result"];
alert(first);
答案 0 :(得分:3)
为什么不简单地检查它是否未定义?
if (first !== undefined)
alert(first);
else alert('ooops');
或者您可能还可以定义类似“默认值”的内容:
var first = getUrlVars().result || '';
答案 1 :(得分:0)
如果查询字符串中没有“result”,则不会将其放入vars对象中。
所以如果你想保留:
'first = getUrlVars()["result"]'
事情发生了,你将不得不接受如果“结果”根本不存在,那么它将显示为未定义(当你要求的数组索引不是你得到的结果持有任何东西,或者尚未设置的对象属性。)
如果你已经死定了,请尝试:
var first = getUrlVars()["result"] || "not-success";
||将允许您在
的情况下返回您想要的任何值作为第一个值vars.result === undefined;
first = result || false;
first = result || {};
first = result || fire_this_function("no-result");
// first now equals the return value of the function if result === undefined
这些都与说法相同:
if (result === undefined) { first = "........"; }