在看設計模式這本書,遇到一個令人疑惑的for回圈陳述句
for (var i = 0, type;type = ['String', 'Array', 'Number'][i++]) {
代碼塊
}
比較疑惑,因為從平時接觸的來看基本上都是
for(陳述句1,陳述句2,陳述句3){ } 陳述句1:起始 陳述句2:回圈終止條件 陳述句3:在回圈后被執行的陳述句
現在的疑惑如下
for(var i =10,i--;){
}
實際上上面的陳述句等同于,這是為什么
for(var i =0, i<10 i++;){
}
原來這里等同于把回圈終止條件和回圈被執行后執行的陳述句相結合了即把判斷和賦值放到一起了,一邊回圈一邊賦值,
i--是什么判斷條件,當i--為fasle即,回圈終止,在js中0, null, undefined, false, ‘’,
根據Boolean的隱形轉化,其結果為false,即i=0時條件終止
再回到我們之前的問題
for (var i = 0, type;type = ['String', 'Array', 'Number'][i++]) {
代碼塊
}
var i =0,type;//陳述句1 type = ['String', 'Array', 'Number'][i++] //陳述句2
即這里的判斷+賦值調件為type = ['String', 'Array', 'Number'][i++],終止條件為type=‘undefined’
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/168612.html
標籤:JavaScript
上一篇:JavaScript 基于offsetHeight和clientHeight判斷是否出現滾動條
下一篇:JS中變數名和函式名重名
