国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

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

2024-05-06 14:12:06
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
看代碼,不說話:
代碼如下:
var i=arr.length;
while(i--)
{
//寫點(diǎn)啥?
}

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

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

震撼?沒感覺?

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

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

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

var i= !!0;

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

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

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

這個(gè)總夠“隱蔽”的了!

再?gòu)?qiáng)調(diào)一次:數(shù)值0的隱式轉(zhuǎn)換成布爾值為false的條件是在if()中、while()中、for(;;)兩個(gè)分號(hào)的中間等布爾判定的條件表達(dá)式。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 临沧市| 芮城县| 大邑县| 游戏| 闽清县| 芷江| 左贡县| 泗水县| 浮山县| 房产| 汾西县| 民乐县| 高台县| 远安县| 金溪县| 东乌珠穆沁旗| 昭平县| 郎溪县| 卓尼县| 周口市| 高平市| 武鸣县| 井陉县| 西乌珠穆沁旗| 安宁市| 城市| 红桥区| 稷山县| 桐城市| 寿宁县| 桓台县| 兴城市| 安图县| 旬阳县| 梁河县| 肇东市| 沈丘县| 景德镇市| 景泰县| 丰台区| 大厂|