我正在经历一些Javascript的最奇怪的行为.
即使if
语句中的表达式求值false
,我的代码仍在if block
继续执行.
这是代码片段:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的Firebug截图:
有任何想法吗?
T.J*_*der 12
尽管Firebug中突出显示了这一行,你确定它真的被执行了吗?我在Firebug(以及Chrome调试器的早期版本)中看到过这种行为,他们有时会突出显示一行代码,好像他们已经步入它,而不会实际执行该行.
所以我会插入一些明确的东西(比如一个console.log("lwidth = " + lwidth);
进入if
语句的主体,看看它是否真的执行.答案可能是Firebug只是突出显示/显示该行当前错误,而实际上没有运行代码.
归档时间: |
|
查看次数: |
1299 次 |
最近记录: |