最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS面試題解['1',?'7',?'11'].map(parseInt)?輸出

 更新時間:2022年08月31日 09:23:52   作者:zuopf769  
這篇文章主要為大家介紹了JS面試題解['1',?'7',?'11'].map(parseInt)?會輸出什么內容詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

輸出結果

['1', '7', '11'].map(parseInt)  //  結果輸出 -> [1, NaN, 3]

為什么輸出會有 NaN ? 為什么把 11 轉成整數會是 3 ?

想把數組里的字符串數字轉換成整數,于是使用 map函數來對數組的每一項作用,作用的函數是 parseInt函數,所以預期的結果應該是[1,7,11] ,然而最終瀏覽器的 JavaScript 引擎給出的答案是 [1, NaN, 3]

從結果可以看到 1 是正常進行轉化的,后面兩個數則不是我們預期的結果。

map函數有問題?

現(xiàn)在我們把 parseInt 換掉,功能改為給每一個數乘 2

['1', '7', '11'].map(function(x){
	return x * 2;     // 結果 -> [2, 14, 22]
});

發(fā)現(xiàn)結果是正常的,x代表從數組里拿到的每一個值,在依次去乘以2 ,沒問題。

可是問題來了,除了x,會不會有其它參數,存不存在其它可以使用的參數。于是我們試驗下:

['1', '7', '11'].map(function(x, i, j, k){
	console.log(x +' ' + i + ' ' + j + ' ' + k);
});

Chrome 的控制臺執(zhí)行后發(fā)現(xiàn)結果出乎意料

也就是說,map 接受的這個函數,它存在三個參數,第一個是數組當前的值,第二個是當前值的索引,第三個數是當前傳入的數組

會不會是傳入的 parseInt 出現(xiàn)問題 ?

當我們傳入 parseInt 時,map 函數會把三個參數(數組當前元素,當前元素的索引,當前傳入的數組)一并打包給 parseInt

那么現(xiàn)在問題就集中在 parseInt 函數上面。

MDN 文檔查詢后可以知道,parseInt(string, radix) 函數接受兩個參數,第一個是需要轉換的字符串,第二個是進制。

于是結果呼之欲出,我把這個過程畫成了圖,方便看圖理解,

首先,parseInt 接受兩個參數,因此第三個參數會被忽略。

第一次執(zhí)行, parseInt('1', 0) 會輸出 1 ,因為 0 會轉換成 false,而 false 會使它執(zhí)行默認的進制 10 ,就是 parseInt 默認都是轉換十進制;

第二次執(zhí)行,parseInt('7', 1) 因為沒有所謂的 1 進制,所以無法轉換,輸出 NaN;

第三次執(zhí)行parseInt('11', 2) 答案為 3 ,因為以 2 為進制轉換,3 的二進制是 11 , 非常的巧妙。

所以最終的輸出的結果就是 [1, NaN, 3]

以上就是JS面試題解['1', '7', '11'].map(parseInt) 輸出的詳細內容,更多關于JS面試題 的資料請關注腳本之家其它相關文章!

相關文章

  • ECMAScript 6數值擴展實例詳解

    ECMAScript 6數值擴展實例詳解

    這篇文章主要為大家介紹了ECMAScript6數值擴展實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • TypeScript5.2引入新關鍵字using介紹

    TypeScript5.2引入新關鍵字using介紹

    這篇文章主要介紹了TypeScript5.2引入新關鍵字using使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • js簡單封裝監(jiān)聽快捷鍵對象示例及使用

    js簡單封裝監(jiān)聽快捷鍵對象示例及使用

    這篇文章主要為大家介紹了js簡單封裝監(jiān)聽快捷鍵對象及使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Canvas如何判斷點在形狀內及內置API性能詳解

    Canvas如何判斷點在形狀內及內置API性能詳解

    這篇文章主要為大家介紹了Canvas如何判斷點在形狀內及內置API性能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 微信小程序 配置文件詳細介紹

    微信小程序 配置文件詳細介紹

    這篇文章主要介紹了微信小程序 配置文件及配置文件的主要功能和注意事項的相關資料,需要的朋友可以參考下
    2016-12-12
  • JavaScript基礎之函數詳解

    JavaScript基礎之函數詳解

    這篇文章主要為大家介紹了JavaScript基礎之函數,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助<BR>
    2021-12-12
  • Evil.js項目源碼解讀

    Evil.js項目源碼解讀

    這篇文章主要為大家介紹了最近火爆全網的?Evil.js?源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • JavaScript前端迭代器Iterator與生成器Generator講解

    JavaScript前端迭代器Iterator與生成器Generator講解

    這篇文章主要為大家介紹了JavaScript前端迭代器Iterator與生成器Generator講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Javascript閉包使用場景原理詳細

    Javascript閉包使用場景原理詳細

    這篇文章主要介紹了Javascript閉包的使用場景,  由于在Javascript語言中,只有函數內部的子函數才能讀取局部變量,閉包就是能夠讀取其他函數內部變量的函數。所以,在本質上,閉包就是將函數內部和函數外部連接起來的一座橋梁,下面一起進入文化在哪個了解文章內容
    2021-11-11
  • Three.js實現(xiàn)雪糕地球的使用示例詳解

    Three.js實現(xiàn)雪糕地球的使用示例詳解

    這篇文章主要為大家介紹了Three.js實現(xiàn)雪糕地球的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07

最新評論

铁岭市| 都匀市| 沂南县| 彭山县| 南靖县| 日土县| 东城区| 崇州市| 丰原市| 余干县| 朝阳区| 桦南县| 宜春市| 乌苏市| 陵川县| 泾川县| 定边县| 塘沽区| 韶关市| 乌拉特中旗| 西吉县| 二手房| 高邮市| 乐亭县| 喀什市| 万山特区| 格尔木市| 柘荣县| 镶黄旗| 荃湾区| 东安县| 定襄县| 锦州市| 西乌| 阿拉尔市| 九龙坡区| 巫溪县| 黑山县| 琼海市| 西吉县| 许昌县|