Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不理解为什么在javascript中我的if语句走错了行_Javascript_Logic - Fatal编程技术网

不理解为什么在javascript中我的if语句走错了行

不理解为什么在javascript中我的if语句走错了行,javascript,logic,Javascript,Logic,我目前有一个if语句,它检查目标是否为null,如果目标不为null,则检查目标是否为“select…”。如果不同时为null和“选择…”然后我希望它执行代码。当我运行这段代码时,它总是跳过if语句主体的第一行并转到第二行。我不明白为什么。在这种情况下,它总是转到targetValue=getTargetValue() 我不确定我是否有逻辑错误。我正在使用firefox调试器,并逐步完成了这段代码 可能是问题所在,因为它从给定索引向后搜索。所以在你的例子中,你给它0,它肯定会返回-1 lastI

我目前有一个if语句,它检查目标是否为null,如果目标不为null,则检查目标是否为“select…”。如果不同时为null和“选择…”然后我希望它执行代码。当我运行这段代码时,它总是跳过if语句主体的第一行并转到第二行。我不明白为什么。在这种情况下,它总是转到targetValue=getTargetValue()


我不确定我是否有逻辑错误。我正在使用firefox调试器,并逐步完成了这段代码

可能是问题所在,因为它从给定索引向后搜索。所以在你的例子中,你给它0,它肯定会返回-1

lastIndexOf()方法返回给定 元素可以在数组中找到,如果不存在,则为-1。这个 从fromIndex开始向后搜索数组

毫无争议地试试这个

if (target != null && !(target.lastIndexOf('select...          ') === 0))
    {
        permalink.href += "&Target=" + target;
        targetValue = getTargetValue();
    }

如果您这样做了:if((target!=null)&&&..@Dean.DePue比较的优先级高于逻辑运算符,这不是问题所在。在为
permaline.href…
行编写的代码中,不可能跳过该行,也不可能执行
targetValue=…
行。代码中发生的任何事情看起来都是这样的。在
if
语句中t执行或不执行整个正文。在某个位置添加警报或
控制台。日志
,以确定表达式的值并跟踪执行情况。没有理由跳过正文的第一条语句。它要么执行整个正文,要么不执行任何正文。
if (target != null && !(target.lastIndexOf('select...          ') === 0))
    {
        permalink.href += "&Target=" + target;
        targetValue = getTargetValue();
    }