2015-11-01 60 views
-4

如果未提供基數,`parseInt()函數可能會返回不期望和/或意外的結果。請在所有parseInt()實例上使用基數。如何在所有parseInt()實例上使用基數

如何編輯

請helpme

如果你需要它

+2

請顯示驗證碼?問題是什麼? –

+0

「*如何編輯*」 - 使用文本編輯器? – melpomene

+0

喬納森。你的郵件將發送給你。多個文件 –

回答

0

假設你創建錯誤時基數不通過我會送文件,

  1. 影子parseInt,保持在一個封閉的舊參考,如IIFE
  2. 測試你的條件
  3. 調用舊參考

例如

parseInt = (function (old_parseInt) { 
    return function parseInt(x, radix) { 
     if (arguments.length < 2) 
      throw new TypeError('parseInt must be given a radix'); 
     return old_parseInt.apply(this, arguments); 
    }; 
}(parseInt)); 

然後在使用中,

parseInt('12', 8); // 10 
parseInt('12'); // TypeError: parseInt must be given a radix 

(此頁上運行該代碼將打破計算器,予以警告)

0

的基數是對parseInt函數()函數的第二個參數。 它設置將字符串轉換爲整數時應使用的數字基地。

很明顯,您會希望parseInt('11')始終返回11 :) 這不能保證所有各種JavaScript實現。

但保證是parseInt('11', 10)將始終返回,你會期望「通過本能」。

選擇不同的基數(或在具有與此有關的一個不同的缺省的實現工作)說2將意味着該數字解釋爲相對於基座2 =>parseInt('11')實際上意味着parseInt('11', 2)因此出來3。

相關問題