parseInt + map

例題: [1,2,3].map(parseInt)

先看看 map 和 parseInt 用法

Array.prototype.map()

語法

array.map(callback[, thisArg])

callback函數的執(zhí)行規(guī)則

參數:自動傳入三個參數

currentValue(當前被傳遞的元素);

index(當前被傳遞的元素的索引);

array(調用map方法的數組)

返回值:對每個傳入callback的數組元素進行處理后,返回的值組成一個新的數組。

callback處理的數組范圍:

只處理有值的索引。沒有被賦值、被delete刪除的索引不會被處理。

在處理過程中新增的元素不會被callback處理。

在處理過程中被刪除的元素不會被callback處理。

在處理過程中被改變的元素,會以callback執(zhí)行到該元素時的值被處理。

tips:綜合2-4條:在callback第一次調用前,已經確定了被處理數組的最大范圍。

thisArg

callback函數被調用時,this會指向thisArg參數所傳的對象;

不向thisArg傳值、或傳的值為null/undefined時,this指向全局對象。

副作用

map方法對原數組不產生影響,(除非callback執(zhí)行時改變了原數組)。

parseInt()

語法

parseInt(string, radix)

參數string

要被解析的值。

該參數可以不是字符串。如果不是字符串,會將其轉換為字符串

字符串開頭的可以有空白,空白會被忽略

參數radix

轉換所采用的基數,2到36之間。

解析規(guī)則

string參數被看做radix指定進制下的數要把它轉換成十進制的整數。

沒有指定基數/基數為0時:

參數string以“0x”或“0X”開頭,radix取16;

參數string以“0”開頭,ECMAScript5規(guī)定radix只能取10,然而ECMAScript3允許radix取8。具體的解析結果依然由實現環(huán)境而定。

其他情況下,radix取10.

基數為1或大于36時:解析結果為NaN。

基數處于2到36之間時:如果string參數的第一個字符(除空白以外),不屬于radix指定進制下的字符,解析結果為NaN;如果第一個字符屬于radix指定進制下的字符,則解析到不屬于radix指定進制下的字符時,將忽略該字符及其后的所有字符。

題目分析

理解了所有背景知識以后,讓我們再來看一下這道題:

["1", "2", "3"].map(parseInt)

考察的知識點為:

1. callback函數自動傳入三個參數:currentValue;index;array。

map方法的callback函數——parseInt方法,在沒有指定傳入的參數的情況下,將自動接收三個參數。在遍歷過程中,parseInt的調用情況如下:

parseInt("1", 0, ["1", "2", "3"])

parseInt("2", 1, ["1", "2", "3"])

parseInt("3", 2, ["1", "2", "3"])

2. parseInt方法接收兩個參數。

第三個參數["1", "2", "3"]將被忽略。parseInt方法將會通過以下方式被調用

parseInt("1", 0)

parseInt("2", 1)

parseInt("3", 2)

3. parseInt的第二個參數radix為0時,ECMAScript5將string作為十進制數字的字符串解析;

parseInt的第二個參數radix為1時,解析結果為NaN;

parseInt的第二個參數radix在2—36之間時,如果string參數的第一個字符(除空白以外),不屬于radix指定進制下的字符,解析結果為NaN。

parseInt("3", 2)執(zhí)行時,由于"3"不屬于二進制字符,解析結果為NaN。

綜上,["1", "2", "3"].map(parse)的返回結果為[1, NaN, NaN]。

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 原文作者:justjavac原文地址:http://justjavac.com/javascript/2014/0...
    飛魚YE閱讀 553評論 0 2
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,569評論 0 13
  • Array.prototype.map()方法與parseInt()方法的結合使用的深入反思:基礎很重要 1. 寫...
    王策北閱讀 663評論 0 1
  • 最近“佛系青年”的自稱很流行,大家時不時都說什么“佛系復習法”、“佛系養(yǎng)生法”……這種自嘲確實讓人很容易就接受一些...
    xishanwai閱讀 211評論 0 0
  • 前天接到一個陌生電話,問我最近過得怎樣,聽著聲音非常熟悉,聊著聊著,竟然是我在湖南工作時幾年前認識的一位朋友。 思...
    王小魚U閱讀 428評論 0 3

友情鏈接更多精彩內容