欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

輸出結(jié)果

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

為什么輸出會有 NaN ? 為什么把 11 轉(zhuǎn)成整數(shù)會是 3 ?

想把數(shù)組里的字符串?dāng)?shù)字轉(zhuǎn)換成整數(shù),于是使用 map函數(shù)來對數(shù)組的每一項(xiàng)作用,作用的函數(shù)是 parseInt函數(shù),所以預(yù)期的結(jié)果應(yīng)該是[1,7,11] ,然而最終瀏覽器的 JavaScript 引擎給出的答案是 [1, NaN, 3]

從結(jié)果可以看到 1 是正常進(jìn)行轉(zhuǎn)化的,后面兩個數(shù)則不是我們預(yù)期的結(jié)果。

map函數(shù)有問題?

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

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

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

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

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

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

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

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

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

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

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

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

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

第一次執(zhí)行, parseInt('1', 0) 會輸出 1 ,因?yàn)?0 會轉(zhuǎn)換成 false,而 false 會使它執(zhí)行默認(rèn)的進(jìn)制 10 ,就是 parseInt 默認(rèn)都是轉(zhuǎn)換十進(jìn)制;

第二次執(zhí)行,parseInt('7', 1) 因?yàn)闆]有所謂的 1 進(jìn)制,所以無法轉(zhuǎn)換,輸出 NaN;

第三次執(zhí)行parseInt('11', 2) 答案為 3 ,因?yàn)橐?2 為進(jìn)制轉(zhuǎn)換,3 的二進(jìn)制是 11 , 非常的巧妙。

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

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

相關(guān)文章

  • nuxt.js 多環(huán)境變量配置

    nuxt.js 多環(huán)境變量配置

    這篇文章主要介紹了nuxt.js 多環(huán)境變量配置,一般在香米開發(fā)中會有三個環(huán)境開發(fā)環(huán)境也叫測試環(huán)境(test) 、RC環(huán)境也叫預(yù)發(fā)布環(huán)境(rc) 、線上環(huán)境(production) 下面來看看文章內(nèi)容的詳細(xì)介紹,需要的朋友可以參考一下
    2021-11-11
  • 前端JS圖片懶加載原理方案詳解

    前端JS圖片懶加載原理方案詳解

    這篇文章主要為大家介紹了前端JS圖片懶加載原理方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 微信小程序 常用工具類詳解及實(shí)例

    微信小程序 常用工具類詳解及實(shí)例

    這篇文章主要介紹了微信小程序 常用工具類詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 微信小程序 Nginx環(huán)境配置詳細(xì)介紹

    微信小程序 Nginx環(huán)境配置詳細(xì)介紹

    這篇文章主要介紹了微信小程序 Nginx環(huán)境配置詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 解析Clipboard?API剪貼板操作實(shí)例

    解析Clipboard?API剪貼板操作實(shí)例

    這篇文章主要為大家介紹了解析Clipboard?API剪貼板操作實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Proxy的不可變數(shù)據(jù)優(yōu)點(diǎn)及使用詳解

    Proxy的不可變數(shù)據(jù)優(yōu)點(diǎn)及使用詳解

    這篇文章主要為大家介紹了Proxy的不可變數(shù)據(jù)優(yōu)點(diǎn)及使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 10分鐘內(nèi)講解Npm腳本使用教程

    10分鐘內(nèi)講解Npm腳本使用教程

    這篇文章主要為大家介紹了10分鐘內(nèi)講解Npm腳本使用教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Skypack布局前端基建實(shí)現(xiàn)過程詳解

    Skypack布局前端基建實(shí)現(xiàn)過程詳解

    這篇文章主要為大家介紹了Skypack布局前端基建過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • next.js源碼解析getStaticProps?getStaticPaths使用場景

    next.js源碼解析getStaticProps?getStaticPaths使用場景

    這篇文章主要為大家介紹了next.js源碼解析getStaticProps?getStaticPaths使用場景,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • autojs使用intent發(fā)送郵件帶附件實(shí)現(xiàn)示例

    autojs使用intent發(fā)送郵件帶附件實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了autojs使用intent發(fā)送郵件帶附件實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01

最新評論