下面的代碼與它等價: 復制代碼 代碼如下: v " /> 国产午夜三级,欧美激情成人网,亚洲资源av

四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

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 數組循環引起的思考,轉載需保留來源!

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

主站蜘蛛池模板: 画魂缠身 电影| 重温经典节目预告| 李英幼| 女同恋性吃奶舌吻完整版| 消防给水及消火栓技术规范gb50974-2014| 爱情天梯| 柚子猫卡夫卡的心理暗示在线观看 | 拾贝的小女孩阅读理解答案| 范根| 南通紫琅音乐节| 欧美17p| 性感的秘书| 林青霞离婚| 护理诊断| 上海东方卫视节目表| 中国安全生产报| 叫床mp3| 风雨丽人 电视剧| 老爸的筒子楼 电视剧| 神经内科出科小结| 天使和恶魔| 列兵大学生| 误杀2剧情| 佐格| 同性gay在线| 复仇者联盟4免费完整版电影| 我未成年 电影| 浪淘沙刘禹锡古诗其七| 许凯个人简历资料| 我自己说了算作文| 感冒难受的图片| 成品直播大全免费观看| 思想理论问题| 2025女人最走运头像| 忘掉我是谁 电视剧| 二年级上册第一单元数学试卷可打印| 卫途轮胎| 湖南金鹰卡通节目表| 密使2之江都谍影 2013 于震| 抖音pc端| 误杀2电影免费观看高清完整版|