我有以下脚本:
if (window.location.href.indexOf('env=P')) {
env = 'P';
console.log("P");
} else {
env = 'A';
console.log("A");
}
无论网址是什么,env始终等于P.我很确定我之前使用过indexOf来表示uri,但我不确定这里的问题。
答案 0 :(得分:4)
那是因为indexOf没有返回0,因此被评估为true。尝试更改为
if (window.location.href.indexOf('env=P') > -1)
答案 1 :(得分:3)
indexOf
将返回-1
,而-1
是true
值。
这是因为它返回子字符串的索引(因此'foo'.indexOf('f')
将返回0
)。
您的支票应该是:
if (location.href.indexOf('env=P') >= 0) {
答案 2 :(得分:0)
indexOf
如果没有匹配则返回-1,那就是Truthy值,你需要明确;
if (window.location.href.indexOf('env=P') === -1) {
///no match