JavaScript 精粹:Number 與 Math

這是 JavaScript 精粹的系列篇,涵蓋了 JavaScript 中最經常使用和最重要的方法,以及其它一些基礎知識。在這篇文章中,咱們將討論 NumberMathjavascript

想閱讀更多優質文章請猛戳GitHub博客,一年百來篇優質文章等着你!前端

前置知識

建議你們瞭解類型,只須要一點數學知識。java

JavaScript Essentials: Types & Data Structuresgit

JavaScript 中的數字基礎

這是什麼意思? 全部JavaScript 數字都存儲爲雙浮點數。 JS會欺騙你,讓你認爲 var x = 1 是一個整數,但實際上它是一個浮點數而且等於 1.0github

若是你這方面感興趣,如下一些連接供你參考:segmentfault

本文的重點是 Number 對象的方法。安全

https://medium.com/dailyjs/ja...dom

數字建立和基本的代碼

圖片描述

重要指南

  • 全部數字都是浮點數
  • 全部的數字都是相同的類型,'number'
  • JS與任何其餘語言同樣,受限於它能夠表示的數字大小以及它的準確程度。

經常使用的方法

「安全」 的數字

一個 「安全」 的數字是一個值保證爲你所說的值的數字。例如,若是試圖在代碼中使用900719925474099164,它就會變成 900719925474099200,這是由於它超出了安全數字範圍。ecmascript

咱們怎麼知道安全數字的範圍是多少?函數

safe numbers

如何肯定一個數字是不是整數?

Number.isInteger

如何更改小數位數?

Number.toFixed

Number.toPrecision

轉換成指數形式

也被稱爲科學記數法。

Number.toExponential

全局 Number 方法 與 Number.method 比較

你可能已經注意到有像 parseInt 這樣的全局函數,可是這裏只用 Number.parseInt()

這是由於 JS 試圖擺脫全局函數而使用模塊。一些新的模塊方法被更新,而舊的全局方法沒有更新。 好比 isNan() 不一樣於 Number.isNan()

使用大數字

警告:下面提到的 vanilla JS 方法目前在這個的時間段內不可用。 (能夠在 Chrome控制檯中嘗試)在此處 查看提案。

圖片描述

在BigInt 可用以前,請使用庫 MikeMcl/bignumber.js

轉換爲另外一個數字系統

toString, parseInt

數字使用字符串中的方法

你可能已經嘗試在控制檯或任何地方上數字使用字符串的方法如 23.toString(2) // syntax error這是由於如前面「數字建立基礎」中提到的 23.0 是可選的。

這意味着當你作 23.tostring(2), JS 認爲它只是一個數字。它應該足夠聰明,知道正在調用一個方法,可是好吧

解決方案:將數字包在括號中 (23).toString(2) //「10111」 或作一些很是奇怪的事...... 23..toString(2) 但請不要這樣作 😅

NaN 是 Number 類型

NaN 存在於 Number 對象上,可是被定義爲某些數學運算的結果,這些運算致使沒法將數值量化爲數字。 或者換句話說,它的命名不好, 「無效數字」或相似數字狀況會更好。

檢查 NaN

NaN 是有毒的,意思是它會把它接觸到的任何東西變成 請輸入代碼NaN 。它是惟一不等於它自己的值,咱們能夠利用它來作一些像 x !== x 的事情,若是它返回 true,那麼它就是 NaN

Object.is, Number.isNaN, isNaN

四捨五入一個數字的方法

floor, ceil, round, toFixed, toPrecision

指數

pow

生成隨機數

Math.random

Math 方法

在這裏只包含了一些 Math 方法,可是有不少方法,請查看文檔。我沒有把它們所有包括在內,由於它們不言自明,而且只在你處理一個數字不少且重要的項目時纔會常常使用。

實踐

原文:

https://codeburst.io/javascri...

你的點贊是我持續分享好東西的動力,歡迎點贊!

歡迎加入前端你們庭,裏面會常常分享一些技術資源。

clipboard.png

相關文章
相關標籤/搜索