[英]JavaScript For/Loop comparison issue
在我看來,這個JavaScript應該可行,但它不起作用! 循環永遠不會運行(它完全被跳過)。
FYI totalPages = 15
for (var i = 1; i >= totalPages; i++) {
pagingOptions += '<option value="' + i + '">' + i + '</option> ';
}
如果我像這樣改變它,它的工作原理:
for (var i = 1; i < totalPages; i++) {
pagingOptions += '<option value="' + i + '">' + i + '</option> ';
}
問題是什么? 如果比較是“i <totalPages”,JavaScript只會運行循環? 為什么會這樣呢?
for
循環的語義:
for (expression1; expression2; expression3) {
// ...
}
AFTER: // statements
是:
expression1
expression2
並檢查它是否truthy
。 如果沒有,請跳過后續代碼(此處為“AFTER”) for
語句關聯的語句(通常是塊語句) expression3
因此,當循環體的迭代應該繼續時,中間表達式應該評估為true
。 一旦它是false
- 即使它在第一次嘗試時是false
的 - 循環結束。
想到它的另一種方式是它就像:
expression1;
while (expression2) {
// statements
expression3;
}
我認為你的錯誤大於/小於此:
for (var i = 1; i <= totalPages; i++) {
pagingOptions += '<option value="' + i + '">' + i + '</option> ';
}
在我看來,這應該有效(對於給定的工作定義,因為我們不知道你是否希望i
小於或小於或等於totalPages
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.