下面的代碼與它等價: 復制代碼 代碼如下: v " /> 久久99精品久久久久久园产越南,成人在线一区二区,亚洲毛片在线播放

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

JavaScript 數組循環引起的思考

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

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

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

震撼?沒感覺?

呃。平時我們寫在兩個分號中間的是什么?這個i--按“常理”應該是在第二個分號之后啊。那我們看看C語言的代碼:
復制代碼 代碼如下:
int main()
{
int i = 5;
while(i--)
{
printf("%d ", i);
}
while(1);
return 0;
}

運行的結果也是與JavaScript驚人的一致!

好吧。我不知道這是為什么?只知道數值0轉換成布爾值為false:

var i= !!0;

而別的數值轉換成布爾值為true。上面的示例程序代碼是將數值到布爾值的顯式轉換。

0隱式轉換為false的情況用下面的JS程序測一下:
復制代碼 代碼如下:
var i=0;
if(i)
{
alert('if');
}
else{
alert('else');
}
alert('不管怎么if和怎么else程序都要走這兒');

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

這個總夠“隱蔽”的了!

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

JavaScript技術JavaScript 數組循環引起的思考,轉載需保留來源!

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

主站蜘蛛池模板: 国产日产欧产精品推荐推荐 | 国产欧美一区二区三区免费看 | 一级毛毛片毛片毛片毛片在线看 | 日韩无遮挡大尺度啪啪影片 | 日韩亚洲欧美一区噜噜噜 | 性亚洲无删减 | 一本大道加勒比久久综合 | 亚洲欧美自拍一区 | 一级做a爰在线就看 | 欧洲精品一区二区三区在线观看 | 色网站免费观看 | 视频福利在线 | 日韩精品欧美亚洲高清有无 | 91精品国产丝袜 | 米奇狠狠| 国产精品综合视频 | 亚洲国产爱 | 美女网站视频黄色 | 天天摸天天爽视频69视频 | 首页 动漫 亚洲 欧美 日韩 | 亚洲国产最新在线一区二区 | 韩国福利影视一区二区三区 | 午夜小网站 | 亚洲另类图片专区 | 五月亚洲| 激情视频激情小说 | 午夜色大片在线观看 | 99国产精品免费视频 | 天天色天天操天天 | 97成人在线观看 | 亚州视频一区 | 一区不卡视频 | 老湿司午夜爽爽影院榴莲视频 | 国内精品一区二区三区最新 | 国产精品青草久久久久福利99 | 美女视频免费看一区二区 | 337p日本大胆欧美人术艺术精品 | 国产中日韩一区二区三区 | 成人永久免费视频 | 久久精品免费全国观看国产 | 成人精品视频一区二区在线 |