最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript 數(shù)組循環(huán)引起的思考

 更新時間:2010年01月01日 00:07:12   作者:  
Google array.js 程序中建議改進的代碼。思考為什么i-- 到了 i為0時while循環(huán)結(jié)束了?
看代碼,不說話:
復(fù)制代碼 代碼如下:

var i=arr.length;
while(i--)
{
//寫點啥?
}

上面是Google array.js 程序中建議改進的代碼。思考為什么i-- 到了 i為0時while循環(huán)結(jié)束了?

下面的代碼與它等價:
復(fù)制代碼 代碼如下:

var i=arr.length;
for(;i--;)
{
//i--寫在兩個分號的中間,奇怪嗎?不奇怪嗎?
}

震撼?沒感覺?

呃。平時我們寫在兩個分號中間的是什么?這個i--按“常理”應(yīng)該是在第二個分號之后啊。那我們看看C語言的代碼:
復(fù)制代碼 代碼如下:

int main()
{
int i = 5;
while(i--)
{
printf("%d ", i);
}
while(1);
return 0;
}

運行的結(jié)果也是與JavaScript驚人的一致!

好吧。我不知道這是為什么?只知道數(shù)值0轉(zhuǎn)換成布爾值為false:

var i= !!0;

而別的數(shù)值轉(zhuǎn)換成布爾值為true。上面的示例程序代碼是將數(shù)值到布爾值的顯式轉(zhuǎn)換。

0隱式轉(zhuǎn)換為false的情況用下面的JS程序測一下:
復(fù)制代碼 代碼如下:

var i=0;
if(i)
{
alert('if');
}
else{
alert('else');
}
alert('不管怎么if和怎么else程序都要走這兒');

if這個示例代碼寫得一點都不“實戰(zhàn)”?那好吧,下面是一位土豆網(wǎng)前端開發(fā)高手的代碼示例片段:
復(fù)制代碼 代碼如下:

var obj = {status:0, msg:'xxxx'};
var data = obj.status || 'xxxx';

這個總夠“隱蔽”的了!

再強調(diào)一次:數(shù)值0的隱式轉(zhuǎn)換成布爾值為false的條件是在if()中、while()中、for(;;)兩個分號的中間等布爾判定的條件表達式。

相關(guān)文章

最新評論

泸定县| 高雄市| 沁水县| 康保县| 光山县| 泽库县| 淮滨县| 治县。| 金华市| 中山市| 宜昌市| 防城港市| 寻乌县| 额敏县| 子洲县| 旅游| 白城市| 多伦县| 徐水县| 镇雄县| 永川市| 永定县| 若羌县| 遂平县| 天镇县| 宁陕县| 遂川县| 东宁县| 图木舒克市| 无为县| 敖汉旗| 通海县| 桦甸市| 古丈县| 汾阳市| 鄱阳县| 碌曲县| 青龙| 玉溪市| 辽阳市| 兴安县|