在糯竽辏客刷題的時(shí)候,遇到Y(jié)Y前端的一道題玉雾,有點(diǎn)意思翔试,寫(xiě)下來(lái)分享
[“1", "2", "3"].map(parseInt)的執(zhí)行結(jié)果是?
A ["1","2","3"]
B [1,2,3]
C [0,1,2]
D 其他?
正確答案是D复旬,圖下是瀏覽器運(yùn)行的答案
要得出正確答案垦缅,先看看map函數(shù)和parseInt函數(shù)的用法以及特性
map指的是映射,[].map()驹碍,基本用法跟forEach方法類(lèi)似
array.map(callback,[ thisObject]);
callback的參數(shù)也類(lèi)似:
[].map(function(value, index, array) {// ...
});
parseInt函數(shù)有兩個(gè)參數(shù)壁涎,分別是字符串和多少進(jìn)制
那么對(duì)應(yīng)題目,就是[“1", "2", "3"].map(parseInt(value,index){});
這里的value就是1志秃,2怔球,3,
而index是0浮还,1竟坛,2,
那么就是value對(duì)應(yīng)解析的字符串钧舌,index對(duì)應(yīng)進(jìn)制担汤,0的話就代表是十進(jìn)制解析,如果該參數(shù)小于 2 或者大于 36洼冻,則 parseInt() 將返回 NaN崭歧。
則第一個(gè)輸出是1,而第二個(gè)是因?yàn)閕ndex小于2碘赖,返回Nan驾荣,第三個(gè)是因?yàn)関alue是3,不符合二進(jìn)制普泡,也返回的是NaN播掷。
順帶一提,forEach()方法跟map()方法類(lèi)似撼班,只是前者代表遍歷歧匈,用法也是一樣的
[].forEach(function(value,index,array));