Javascript: false, если выражение продолжает выполнение кода с ограниченной областью действия

Я столкнулся с одним из самых странных способов поведения Javascript.

Несмотря на то, что выражение в операторе if оценивается как false , мой код внутри блока if продолжает выполняться.

Вот фрагмент кода:

if (view.leftCols !== null) {
    var leftCols = view.leftCols.split(',');

    for (var lc = 0; lc < leftCols.length; lc++) {
        var lcv = leftCols[lc].split(':');
        var lcol = lcv[0];

        Array.add(allCols, lcol);

        try {
            var lwidth = lcv[1] - MyWorkGrid.getColWidth(lcol);

            if (lcol === 'Edit') {
                if ($.browser.msie && parseInt($.browser.version) <= 8) {
                    lwidth = 23;
                }
            }

            // this if statement fails.
            if (lwidth > 0) {
                grid.SetWidth(lcol, lwidth);
            }
        } catch (e) {
        }

         grid.MoveCol(lcol, 0, 1, 1);
    }
}

Вот мой снимок экрана Firebug:

Firebug

Есть идеи?

5
задан Moon 19 February 2012 в 16:34
поделиться