下面的代碼與它等價: 復制代碼 代碼如下: v " /> 黄桃av,四虎影视最新网址,久久精品一级

中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

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

看代碼,不說話:
復制代碼 代碼如下:
var i=arr.length;
while(i--)
{
//寫點啥?
}

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

下面的代碼與它等價:
復制代碼 代碼如下:
var i=arr.length;
for(;i--;)
{
//i--寫在兩個分號的中間,奇怪嗎?不奇怪嗎?
}

震撼?沒感覺?

呃。平時我們寫在兩個分號中間的是什么?這個i--按“常理”應(yīng)該是在第二個分號之后啊。那我們看看C語言的代碼:
復制代碼 代碼如下:
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程序測一下:
復制代碼 代碼如下:
var i=0;
if(i)
{
alert('if');
}
else{
alert('else');
}
alert('不管怎么if和怎么else程序都要走這兒');

if這個示例代碼寫得一點都不“實戰(zhàn)”?那好吧,下面是一位土豆網(wǎng)前端開發(fā)高手的代碼示例片段:
復制代碼 代碼如下:
var obj = {status:0, msg:'xxxx'};
var data = obj.status || 'xxxx';

這個總夠“隱蔽”的了!

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

JavaScript技術(shù)JavaScript 數(shù)組循環(huán)引起的思考,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美成人a∨高清免费观看 91伊人 | 色婷婷国产精品综合在线观看 | 蜜桃在线一区二区三区 | 国产日韩欧美在线一区 | 亚洲免费视频一区二区 | 日韩久久久久久久 | 久久久久久九九九九九九 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 一级做a爰片性色毛片 | 亚洲毛片| 久久亚洲一区二区三 | 国产一区二区三区精品久久久 | 亚洲精品一区二三区不卡 | 91综合网 | 区一区二在线观看 | 亚洲成人一区二区在线 | 亚洲一区二区三区免费视频 | 日韩精品一区二区三区中文在线 | 中文字幕 在线观看 | 在线亚洲一区 | 成人毛片在线视频 | 视频一区二区中文字幕日韩 | 精品久久久久久久久久久久久久久久久 | 色妞av| 成人免费视频一区 | jizz亚洲人 | 国产精品久久久久久久久久久免费看 | 美女视频一区 | 五月激情六月婷婷 | 国产精品成av人在线视午夜片 | 国产精品免费一区二区三区四区 | 国产精品久久二区 | 国产精品久久久久久久粉嫩 | 久久777 | 国产乱一区二区三区视频 | 在线午夜 | a视频在线观看 | 真人毛片| 暴草美女 | 中文字幕日韩一区 | 国产激情免费视频 |