JavaScript >> Javascript 文檔 >  >> Tags >> string

JavaScript 將字符串轉換為數字

簡介

管理數據是編程的基本概念之一。將數字轉換為字符串是一種常見且簡單的操作。反之亦然,將字符串轉換為數字。

字符串轉數字

與前面展示的方法一樣,JavaScript 還提供了輕鬆將字符串轉換為原始數字的函數。這些是 parseInt() , parseFloat() , Math.floor() , Math.ceil() , Unary Operator / Multiply by 1 .

  • .parseInt() 將 String 作為第一個參數,以及該 String 將轉換為的基數。此方法始終返回一個整數。
  • .parseFloat() 接受一個字符串作為參數,並返回等效的浮點數。
  • Math.floor() 用於對整數或浮點數進行舍入。它返迴向下舍入的最接近的整數。
  • Math.ceil() 可用於對整數或浮點數進行四捨五入。
  • Unary Operator 通過添加 + 在字符串之前簽名,如果格式正確,它將被轉換為數字。
  • Multiply by 1
    如果一個String乘以原始數字1 , 字符串會變成數字。

.parseInt()

基數可以通過為我們要解析的數字添加前綴來定義:

  • 無前綴 - 如果沒有前綴,則基數為 10(十進制)。
  • 0 - 如果前綴是0 ,則基數為 8(八進制)。不過,此功能已被棄用。
  • 0x - 如果前綴是0x ,則基數為 16(十六進制)。

雖然,我們可以簡單地在方法調用中添加一個可選參數,定義基礎:

let str = '353';
let fltStr = '353.56';
let binStr = '7';
let nanStr = 'hello';

parseInt(str);       // 353
parseInt(fltStr);    // 353
parseInt(binStr, 2); // 111 (Binary)
parseInt(nanStr);    // NaN (Not a Number)

.parseFloat()

let str = '100';
let fltStr = '100.21';
let nanStr = 'bye';

parseFloat(str);    // 353
parseFloat(fltStr); // 353.21
parseFloat(nanStr); // NaN

Math.floor()

令人驚訝的是,這個方法還可以接受字符串,這使它成為一種將字符串轉換為整數的方法。

let str = '100';
let fltStr = '99.89';
let nanStr = 'bye';

Math.floor(str);    // 100
Math.floor(fltStr); // 99
Math.floor(nanStr); // NaN

Math.ceil()

與前面的方法非常相似,不過,這次它返回最接近的整數,向上 .

該方法可以接受字符串,也可以將字符串轉換為數字:

let str = '100';
let fltStr = '100.21';
let nanStr = 'bye';

Math.ceil(str);    // 100
Math.ceil(fltStr); // 101
Math.ceil(nanStr); // NaN

請記住,如果您需要解析浮點數,那麼 Math.floorMath.ceil 可能不是很好的選擇,因為它們總是會將字符串轉換為最接近的等效整數。

一元運算符

與連接空字符串一樣,還有一種解決方法,性能更好,但缺乏可讀性。

let str = '100';
let fltStr = '100.21';
let nanStr = 'greetings';

+str    // 100
+fltStr // 100.21
+nanStr // NaN
+'1000' // 1000
+10.25  // 10.25

雖然簡潔有效,但它並不是 JavaScript 的一個非常知名的功能,因此不建議使用它,因為它可能會使您的代碼不那麼容易理解。

乘以 1

這種方法可以說是最快的一種:

let str = '100';
let fltStr = '100.21';
let nanStr = 'greetings';

str * 1;      // 100
fltStr * 1;   // 100.21
nanStr * 1;   // NaN
'2000' * 1;   // 2000
'102.15' * 1; // 102.15

免費電子書:Git Essentials

查看我們的 Git 學習實踐指南,其中包含最佳實踐、行業認可的標準以及隨附的備忘單。停止谷歌搜索 Git 命令並真正學習 它!

前兩種方法之所以有效,僅僅是因為 JavaScript 會嘗試同化語句中使用的數據類型,例如加法或乘法。

使用字符串和數字對象

另一種將字符串轉換為數字或將數字轉換為字符串的方法是使用 new 創建一個新的字符串或數字對象 關鍵字。

// Number to String
let numToStr = new String(2);   // String {'2'}

// String to Number
let strToNum = new Number('2'); // Number {2}

但是,這種做法不鼓勵 .使用原始數據時,不應使用對象方法來創建它們。
使用 String 或 Number 類包裝器實例化原始數據類型會帶來性能和內存問題。

結論

有許多有效的數據處理方法。由程序員決定他們更喜歡哪一個,選擇性能而不是可讀性或兩者之間的平衡。

更多信息,您可以閱讀以下資源:

  • parseInt
  • parseFloat
  • 數學.floor
  • 數學.ceil

Tutorial JavaScript 教程
  1. 撲熱息痛.js💊| #44:解釋這段 JavaScript 代碼

  2. 面向應用的數組理解

  3. 如何在元素之外捕獲鼠標事件?

  4. 使用 JQuery 捕獲 CTRL+S 的最佳跨瀏覽器方法?

  5. 如何使用 Next.js API 路由

  6. 如何使用模板文字創建多行字符串

  7. 在 HTML5 localStorage 中存儲對象

  1. 任何人都可以推荐一些 JavaScript 書籍和路線圖來學習使用 NodeJS 進行後端 Web 開發嗎?

  2. 使用 Rails 和 i18n-js 進行國際化

  3. 如何在 React 中更新應用程序

  4. 何時將 Node.js 用於後端 - 企業主指南

  5. 介紹 Commitiquette

  6. Polypane 6.1:可讀性、內容混亂和重寫的事件同步引擎

  7. 反應式變量是 Svelte 中最好的功能

  1. Nunjucks 模板解釋基於 AsyncAPI 規範

  2. 使用 HTML、CSS 和 JavaScript 構建簡單的測驗

  3. React Query 作為持久狀態管理器

  4. DativeJs 中的新功能