簡體   English   中英

javascript 函數中的奇怪行為

[英]Weird behavior in javascript function

這個 javascript 應該運行函數func len次,然后返回它是否一直成功。 相反,只要func返回 false,就會取消for循環。 這怎么解釋? ( jsfiddle )

function do_something(func, len) {
    var res = true;
    for (var i = 0; i < len; i++) {
        res = res && func(i);
    }
    return res == true;
}

do_something(function(x) {
    console.log(x);
    return false;
}, 5);

do_something(function(x) {
    console.log(x);
    return true;
}, 5);

我希望0, 1, 2, 3, 4, 0, 1, 2, 3, 4 ,但輸出看起來像這樣:

0
0
1
2
3
4

因為第一個函數返回falseres = res && func(0)false分配給res 下次執行該行時,即res = res && func(1)func(1)將不會被執行,因為res是(並保持) false

&&短路 給定a && b ,如果a評估為false ,則根本不會評估b

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM