五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

突然覺得自己好像沒學(xué)過JS

2020-09-02 16:42 作者:博毅創(chuà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?

恭喜你:答錯了!

三、是1?

恭喜你:答錯了!

四、正確答案: 4

解釋: for in 循環(huán)循環(huán)的值永遠是key, key是一個字符串。所以total的值是:'0012'。它是一個字符串,字符串'0012'/3,0012會被轉(zhuǎn)換成12,然后除以3,結(jié)果是4。

五、后記

這個示例是來自《編寫高質(zhì)量JavaScript的68個方法》的第49條:數(shù)組迭代要優(yōu)先使用for循環(huán)而不是for in循環(huán)。
既然已經(jīng)發(fā)布,就可能有好事者拿出去當面試題。這個題目很有可能坑一堆人。其中包括我。
這里涉及到許多js的基礎(chǔ)知識:

for in 循環(huán)是循環(huán)對象的索引屬性,key是一個字符串。
數(shù)值類型和字符串相加,會自動轉(zhuǎn)換為字符串。
字符串除以數(shù)值類型,會先把字符串轉(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);

這樣寫有幾個好處:

循環(huán)的終止條件簡單且明確。
即使在循環(huán)體內(nèi)修改了數(shù)組,也能有效的終止循環(huán)。否則就可能變成死循環(huán)。
編譯器很難保證重啟計算scores.length是安全的。
提前確定了循環(huán)終止條件,避免多次計算數(shù)組長度。這個可能會被一些瀏覽器優(yōu)化。

關(guān)鍵詞:JavaScript,面試題,for循環(huán)與for in循環(huán)的區(qū)別,JS數(shù)組,遍歷數(shù)組注意事項


突然覺得自己好像沒學(xué)過JS的評論 (共 條)

分享到微博請遵守國家法律
东源县| 林州市| 滦平县| 泾源县| 连江县| 德清县| 米林县| 乌拉特前旗| 贵南县| 青神县| 增城市| 六安市| 柳林县| 峨山| 崇左市| 丰城市| 富裕县| 斗六市| 湾仔区| 阜平县| 乌海市| 兴仁县| 南城县| 康保县| 通山县| 佛教| 永川市| 衡阳市| 南漳县| 栖霞市| 剑河县| 阳新县| 唐山市| 会理县| 屏山县| 长丰县| 吉安县| 沾益县| 鲜城| 建德市| 惠州市|