摘要:既然已經(jīng)發(fā)布,就可能有好事者拿出去當(dāng)面試題。循環(huán)的終止條件簡(jiǎn)單且明確即使在循環(huán)體內(nèi)修改了數(shù)組,也能有效的終止循環(huán)。提前確定了循環(huán)終止條件,避免多次計(jì)算數(shù)組長(zhǎng)度。
先看題:mean的值是什么?
var scores = [10,11,12]; var total = 0; for(var score in scores){ total += score; } var mean = total/scores.length; console.log(mean);是11?
恭喜你:答錯(cuò)了!
是1?恭喜你:答錯(cuò)了!
正確答案: 4解釋?zhuān)?for in 循環(huán)循環(huán)的值永遠(yuǎn)是key, key是一個(gè)字符串。所以total的值是:"0012"。它是一個(gè)字符串,字符串"0012"/3,0012會(huì)被轉(zhuǎn)換成12,然后除以3,結(jié)果是4。
后記這個(gè)示例是來(lái)自《編寫(xiě)高質(zhì)量JavaScript的68個(gè)方法》的第49條:數(shù)組迭代要優(yōu)先使用for循環(huán)而不是for in循環(huán)。
既然已經(jīng)發(fā)布,就可能有好事者拿出去當(dāng)面試題。這個(gè)題目很有可能坑一堆人。其中包括我。
這里涉及到許多js的基礎(chǔ)知識(shí).
for in 循環(huán)是循環(huán)對(duì)象的索引屬性,key是一個(gè)字符串。
數(shù)值類(lèi)型和字符串相加,會(huì)自動(dòng)轉(zhuǎn)換為字符串
字符串除以數(shù)值類(lèi)型,會(huì)先把字符串轉(zhuǎn)為數(shù)值,最終結(jié)果為數(shù)值
正確方法
var scores = [10,11,12]; var total = 0; for(var i=0, n=scores.length; i < n; i++){ total += scores[i]; } var mean = total/scores.length; console.log(mean);
這樣寫(xiě)有幾個(gè)好處。
循環(huán)的終止條件簡(jiǎn)單且明確
即使在循環(huán)體內(nèi)修改了數(shù)組,也能有效的終止循環(huán)。否則就可能變成死循環(huán)。
編譯器很難保證重啟計(jì)算scores.length是安全的。
提前確定了循環(huán)終止條件,避免多次計(jì)算數(shù)組長(zhǎng)度。這個(gè)可能會(huì)被一些瀏覽器優(yōu)化。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/82183.html
摘要:系統(tǒng)拿不再經(jīng)過(guò)系統(tǒng),而是從消息隊(duì)列里邊拿。高可用無(wú)論是我們使用消息隊(duì)列來(lái)做解耦異步還是削峰,消息隊(duì)列肯定不能是單機(jī)的。最后本文主要講解了什么是消息隊(duì)列,消息隊(duì)列可以為我們帶來(lái)什么好處,以及一個(gè)消息隊(duì)列可能會(huì)涉及到哪些問(wèn)題。 前言 只有光頭才能變強(qiáng)。文本已收錄至我的GitHub倉(cāng)庫(kù),歡迎Star:https://github.com/ZhongFuCheng3y/3y 公司用到的很多技...
摘要:這個(gè)系列的文章將記錄我準(zhǔn)備春招的整個(gè)過(guò)程,我會(huì)將自己學(xué)習(xí)到的新知識(shí)記錄在這個(gè)系列里文章目錄前言說(shuō)明準(zhǔn)備方向目標(biāo)前言說(shuō)明作為半個(gè)科班出身學(xué)數(shù)學(xué)的應(yīng)屆生,在學(xué)習(xí)計(jì)算機(jī)的時(shí)候還是比較吃力的,從今年月份開(kāi)始接觸前端,到現(xiàn)在也有個(gè)月左右了。 這個(gè)系列的文章將記錄我準(zhǔn)備春招的整個(gè)過(guò)程,我會(huì)將自己學(xué)習(xí)到的新知識(shí)記錄在這個(gè)系列里 文章目錄 前言說(shuō)明 準(zhǔn)備方向 目標(biāo) 前言說(shuō)明 ??作為半個(gè)科班出身...
摘要:這個(gè)系列的文章將記錄我準(zhǔn)備春招的整個(gè)過(guò)程,我會(huì)將自己學(xué)習(xí)到的新知識(shí)記錄在這個(gè)系列里文章目錄前言說(shuō)明準(zhǔn)備方向目標(biāo)前言說(shuō)明作為半個(gè)科班出身學(xué)數(shù)學(xué)的應(yīng)屆生,在學(xué)習(xí)計(jì)算機(jī)的時(shí)候還是比較吃力的,從今年月份開(kāi)始接觸前端,到現(xiàn)在也有個(gè)月左右了。 這個(gè)系列的文章將記錄我準(zhǔn)備春招的整個(gè)過(guò)程,我會(huì)將自己學(xué)習(xí)到的新知識(shí)記錄在這個(gè)系列里 文章目錄 前言說(shuō)明 準(zhǔn)備方向 目標(biāo) 前言說(shuō)明 ??作為半個(gè)科班出身...
摘要:這個(gè)系列的文章將記錄我準(zhǔn)備春招的整個(gè)過(guò)程,我會(huì)將自己學(xué)習(xí)到的新知識(shí)記錄在這個(gè)系列里文章目錄前言說(shuō)明準(zhǔn)備方向目標(biāo)前言說(shuō)明作為半個(gè)科班出身學(xué)數(shù)學(xué)的應(yīng)屆生,在學(xué)習(xí)計(jì)算機(jī)的時(shí)候還是比較吃力的,從今年月份開(kāi)始接觸前端,到現(xiàn)在也有個(gè)月左右了。 這個(gè)系列的文章將記錄我準(zhǔn)備春招的整個(gè)過(guò)程,我會(huì)將自己學(xué)習(xí)到的新知識(shí)記錄在這個(gè)系列里 文章目錄 前言說(shuō)明 準(zhǔn)備方向 目標(biāo) 前言說(shuō)明 ??作為半個(gè)科班出身...
摘要:本文旨在用最通俗的語(yǔ)言講述最枯燥的基本知識(shí)今日,看到有些文章對(duì)碼農(nóng)和程序員做了一些界限劃定和差異分析,嚇得作者趕緊研究一下自己屬于哪個(gè)身份,但當(dāng)仔細(xì)查看了這些文章后,發(fā)現(xiàn)其實(shí)對(duì)于寫(xiě)代碼的人來(lái)說(shuō),無(wú)非就像周星馳嘴里的龍?zhí)缀脱輪T之分,頓時(shí)感悟, 本文旨在用最通俗的語(yǔ)言講述最枯燥的基本知識(shí) 今日,看到有些文章對(duì)碼農(nóng)和程序員做了一些界限劃定和差異分析,嚇得作者趕緊研究一下自己屬于哪個(gè)身份,但當(dāng)...
閱讀 3252·2021-11-24 09:39
閱讀 2937·2021-09-09 11:34
閱讀 3203·2021-09-07 09:58
閱讀 2309·2019-08-30 13:07
閱讀 2873·2019-08-29 15:09
閱讀 1570·2019-08-29 13:01
閱讀 2314·2019-08-26 12:18
閱讀 1938·2019-08-26 10:28