即使IF条件为false,为什么语句在Javascript中执行?

时间:2013-10-18 09:25:18

标签: javascript

这是我的代码,

columnLength = tColumns.length;

    if (parseInt(columnLength) ==2) {
        tColumns[0].parentNode.insertBefore(tD, tColumns[0].nextSibling);
    }
    if (parseInt(columnLength) >= 3) 
    {
        tColumns[0].parentNode.insertBefore(tD, tColumns[0].nextSibling);
        tColumns[0].parentNode.insertAfter(tD, tColumns[0].nextSibling);
    }`

假设columnLength 1 ..第一个 IF 条件为false且未执行内部语句。

即使是第二个条件也是假的,因为 1不大于等于3 ,但语句正在执行!

代码有什么问题?

我正在使用Visual Studio IDE进行调试,即使在即时窗口中也 IF条件返回false ,如下所示。

enter image description here

1 个答案:

答案 0 :(得分:0)

ONTOPIC:

我假设您的tColumns.length可能没有您期望的值。我猜它的值是undefined,不能解析为整数。

http://jsfiddle.net/FRXkM/1/

OFFTOPIC:

可能与您的问题无关。但是parseInt需要传统的第二个参数。

例如:

parseInt("34", 10);

有关parseInt及其参数的信息,请转至http://www.w3schools.com/jsref/jsref_parseint.asp