gpt4 book ai didi

javascript - 为什么我的 javascript else 语句停止工作

转载 作者:行者123 更新时间:2023-12-02 18:02:27 26 4
gpt4 key购买 nike

第一个 if-else 语句按预期工作,本地址栏变量存在时,它执行 if 部分,而当不存在时,则执行 else...但是,在将所有 else 语句分开的 VAR 行之后,我放入不起作用

var hasVars = 0;
var loc = window.location.href;
if(loc.indexOf('?')>-1) { hasVars = 1; }

if(hasVars==1) { alert("ttt"); }
else { alert("eee"); }

var query = loc.slice(loc.indexOf('?') + 1);
var vars = query.split('&');
var pair = vars[0].split('=');
var data1 = pair[1].split('.');


if(hasVars==1) { alert("ttt"); }
else { alert("eee"); }

我注释掉每一行并将它们放回原处,问题似乎出在 data1 变量行,注释掉它工作正常,但使用它 else 语句无法运行

最佳答案

代码的 var query (...) 部分仅在存在查询参数时才起作用。因此,当没有问题时,它就会出现问题。一种解决方案是在那里也放置一个if

var hasVars = 0;
var loc = window.location.href;
if(loc.indexOf('?')>-1) { hasVars = 1; }

if(hasVars==1) { alert("ttt"); }
else { alert("eee"); }

if (hasVars==1) { // added this
var query = loc.slice(loc.indexOf('?') + 1);
var vars = query.split('&');
var pair = vars[0].split('=');
var data1 = null;
if (pair[1] != undefined) { // added this for: "page?var" cases
data1 = pair[1].split('.');
} // added
} // added

if(hasVars==1) { alert("ttt"); }
else { alert("eee"); }

您遇到的问题的详细信息:

当没有查询参数时,query 只是 URL。让我一步步解释。示例页面:http://example.com/page

query -> 'http://example.com/page'
vars -> ['http://example.com/page']
pair -> ['http://example.com/page']

问题出在:

var data1 = pair[1].split('.');

由于 pairpair[1] 中没有项目。上面的代码与 undefined.split('.') 相同,会产生运行时错误,从而阻止以下行(如果您要求的话,还有第二行)执行。

关于javascript - 为什么我的 javascript else 语句停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20415121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com