Tôi đang gặp phải một số hành vi kỳ lạ nhất của Javascript.Javascript: false nếu biểu thức tiếp tục thực hiện nếu mã scoped
Mặc dù biểu thức trong câu lệnh if
đánh giá là false
, mã của tôi bên trong if block
vẫn tiếp tục thực thi.
Dưới đây là đoạn mã:
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);
}
}
Đây là Firebug ảnh chụp màn hình của tôi:
Bất kỳ ý tưởng?
Điều bạn nói xảy ra thực sự không thể xảy ra, vì vậy bạn nên đăng mã. Ảnh chụp màn hình đó là không đọc được. – Pointy
Ảnh chụp màn hình không thể đọc, xin. cung cấp mã và các giá trị hiện tại của các biến được sử dụng trong "if". Oh, và nhân tiện, đó là * luôn luôn * con người trước máy tính, tôi tự tìm ra một lần nữa :) –
chỉ là một giả định, nhưng có lẽ firebug đã lưu trữ một phiên bản cũ của tập lệnh và những gì bạn thấy trong nó khi bạn đang thực hiện từng bước thực hiện không phải là những gì thực sự đang được thực hiện ... –