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

JavaScript數據結構Number

 更新時間:2022年02月18日 11:24:30   作者:天行無忌  
這篇文章主要介紹了JavaScript數據結構Number,Number?是JavaScript的基本數據結構,是對應數值的應用類型,下文給大家分享JavaScript使用?Number?的常見問題,需要的朋友可以參考一下

前言:

NumberJavaScript的基本數據結構,是對應數值的應用類型。要創(chuàng)建一個 Number 對象,就使用 Number 構造函數并傳入一個數值。在 JavaScript 中沒有其他語言這么多的數字類型。根據 ECMAScript 標準,數字只有一種類型,它是“雙精度 64 位二進制格式 IEEE 754 值”。這種類型用于存儲整數和分數,相當于 Java 和 C 中的 double 數據類型。這個獨特性也就導致了 0.1+0.2 為什么不等于 0.3。本文介紹JavaScript使用 Number 的常見問題。

先來看下下面的代碼:

console.log(0.1 + 0.2); // 0.30000000000000004

從上面運行結果可以看出 0.1+0.2 不等于 0.3。只有分母為 2 的冪的分數才能有限地表示為二進制形式. 由于 0.1 (1 / 10) 和 0.2 (1 / 5) 的分母不是 2 的冪,因此這些數字不能以二進制格式有限地表示。為了將它們存儲為 IEEE-754 浮點數,它們必須四舍五入到尾數的可用位數——半精度為 10 位,單精度為 23 位,雙精度為 52 位。根據可用的精度位數,0.1 和 0.2 的浮點近似值可能比相應的十進制表示略小或略大,但永遠不會相等。因為這個事實,永遠不會有 0.1+0.2 == 0.3。

一、NaN和Infinity

NaN 代表Not a Number 并且它不同于 Infinity,盡管兩者通常在實數的浮點表示以及浮點運算中都作為特殊情況處理。NaN 是一個特殊的值,它是唯一一個不等于自身的值,來看看下面的代碼理解一個這個值:

const num = 9 + NaN;
console.log(num); // NaN
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
console.log(Object.is(NaN, NaN)); // true
console.log(isNaN(NaN)); // true
console.log(isNaN("devpoint")); // true
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN("devpoint")); // false
console.log(Number.isNaN(+"devpoint")); // true

Infinity 是 JavaScript 中的一個特殊值,表示數學無窮大和溢出值,數字太大以至于“溢出”緩沖區(qū)并導致 Infinity。它是計算創(chuàng)建超出 JavaScript 中特殊最大值的數字的結果,該值約為1.79e+308 或 2¹?²?,即 JavaScript 中可以存儲為數字原始類型的最大值。

注意 :Infinity,-Infinity 和 NaN 是 JavaScript 中唯一的“無限”(非有限)數字。

二、常用方法

在程序中處理數字是一個常見的需求,例如序號、費用、溫度等等。下面通過代碼展示一些常用的與 Number 有關的方法。

1.安全數字

安全數字是一個數字,其值保證可以正常顯示。例如,如果有一個變量值為 900719925474099194 ,那么它是否安全?

下面來看 JavaScript 中安全數字的范圍是多少?如何驗證?

  • Number.MIN_SAFE_INTEGER:-9007199254740991
  • Number.MAX_SAFE_INTEGER:9007199254740991
  • Number.MAX_VALUE:1.7976931348623157e+308
  • Number.MIN_VALUE:`5e-324
const test = 900719925474099194;
console.log(Number.isSafeInteger(test)); // false
console.log(Number.isSafeInteger(9007199254740991)); // true

2.整數判斷

JavaScript 中對于數字不區(qū)分整數、小數等類型,統(tǒng)稱為 Number 類型。從下面的代碼結果可以想到判斷整數的方法:

console.log(Number.isInteger(9)); // true
console.log(Number.isInteger(9 / 2)); // false
console.log(Number.isInteger(9.6)); // false
console.log(9 % 1 === 0); // true
console.log(9.1 % 1 === 0); // false
const checkInteger = (num) => (num | 0) === num;
console.log(checkInteger(9)); // true
console.log(checkInteger(9.1)); // false
console.log(checkInteger("9.0")); // false
console.log(checkInteger("")); // false

3.數字格式判斷

下面的代碼片段將展示如何檢查一個值或變量是否包含一個數字(整數、浮點數等)。

function isNumber(n) {
? ? return !isNaN(parseFloat(n)) && isFinite(n);
}
console.log(isNumber(100)); // true
console.log(isNumber(3.14)); // true
console.log(isNumber("3.14")); // true
console.log(isNumber("a3.14")); // false
console.log(isNumber("JavaScript")); // false

4.四舍五入

JavaScript 中,對數值進行四舍五入操作有很多的方式,下面來一一總結一下。

向上取整:

向上取整使用 Math.ceil(),返回大于或等于 x ,并且與之最接近的整數。

console.log(Math.ceil(9.005)); // 10
console.log(Math.ceil(9.999)); // 10

四舍五入:

Math.round() 是對一個浮點數進行四舍五入,并保留整數位。語法如下:

Math.round(x)

x :需要處理的數值

返回值,返回給定數字的四舍五入后的值。

console.log(Math.round(9.005)); // 9
console.log(Math.round(9.51)); // 10
console.log(Math.round(9.49)); // 9
console.log(Math.round(9.999)); // 10

固定精度:

.toFixed()Number 原型上實現的一個方法,其作用是對一個浮點數進行四舍五入并保留固定小數位。語法如下:

numObj.toFixed(digits)

digits:小數點后數字的個數;介于 0 到 20 (包括)之間,實現環(huán)境可能支持更大范圍。如果忽略該參數,則默認為 0。
返回值,返回使用定點表示法表示給定數字的字符串。

const pi = 3.14159265359;
console.log(pi.toFixed(2)); // 3.14
console.log(pi.toFixed(3)); // 3.142

固定長度:

.toPrecison() 也是 Number 原型上實現的一個處理浮點數的方法,和 toFixed 不同的是,它是對一個浮點數進行四舍五入并保留固定長度的有效數字,包括整數部分。語法如下:

numObj.toPrecision(precision)

precision:可選,一個用來指定有效數個數的整數。
返回值,以定點表示法或指數表示法表示的一個數值對象的字符串表示,四舍五入到 precision 參數指定的顯示數字位數。

const pi = 3.14159265359;
console.log(pi.toPrecision(3)); // 3.14
console.log(pi.toPrecision(4)); // 3.142

向下取整:

Math.floor() 返回小于或等于一個給定數字的最大整數。

Math.floor(x)

x:一個數字。

返回值,一個表示小于或等于指定數字的最大整數的數字。

console.log(Math.floor(9.005)); // 9
console.log(Math.floor(9.51)); // 9
console.log(Math.floor(9.49)); // 9
console.log(Math.floor(9.999)); // 9

5.生成隨機數

通過Math.random() 返回 0-1 之間的隨機數的原理,結果乘以最大數并四舍五入即可獲得一個介于 0 和 max 之間的數字。

const randomNumber = (max) => Math.round(Math.random() * max);
console.log(randomNumber(100));

進一步完善上面的方法以可以獲取指定最小和最大范圍的隨機數。

const randomNumber = (min, max) =>
? ? Math.round(Math.random() * (max - min) + min);
? ? console.log(randomNumber(51, 100));

數學函數 Math 是一個內置對象,它擁有一些數學常數屬性和數學函數方法,Math 不是一個函數對象,Math 用于 Number 類型,但它不支持 BigInt。

三、總結

JavaScriptNumber 對象是經過封裝的能讓你處理數字值的對象。介紹了JavaScript 中唯一的“無限”(非有限)數子:Infinity,-Infinity 和 NaN ,并提供了一些常用的數字處理方法。

到此這篇關于JavaScript數據結構Number的文章就介紹到這了,更多相關JavaScript-Number內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • js DIV滾動條隨機位置的設置技巧

    js DIV滾動條隨機位置的設置技巧

    剛才一個朋友告訴我他的blog友情鏈接太多了,所以把所有鏈接放到一個DIV中,加了個滾動條,可是他又不想每次別人來看,看到的都是前面幾個鏈接,于是問我有沒有什么辦法,想了一個,呵呵,正好有個辦法
    2008-11-11
  • 移動端基礎事件總結與應用

    移動端基礎事件總結與應用

    本文主要介紹了移動端基礎事件總結與應用,具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • 在Koa.js中實現文件上傳的接口功能

    在Koa.js中實現文件上傳的接口功能

    這篇文章主要介紹了在Koa.js中實現文件上傳的接口功能,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • JavaScript?TWaver使用中間點畫折線的方法

    JavaScript?TWaver使用中間點畫折線的方法

    這篇文章主要介紹了JavaScript?TWaver使用中間點畫折線的方法,TWaver的圖形組件庫中提供了拓撲組件、地圖組件、設備圖組件,以及表格、樹圖、屬性表、圖表等豐富的通用圖形界面組件
    2022-07-07
  • javascript下arguments,caller,callee,call,apply示例及理解

    javascript下arguments,caller,callee,call,apply示例及理解

    在看到大家如此關注JS里頭的這幾個對象,我試著把原文再修改一下,力求能再詳細的闡明個中意義
    2009-12-12
  • JavaScript中字符串GBK與GB2312的編解碼示例講解

    JavaScript中字符串GBK與GB2312的編解碼示例講解

    在瀏覽器JavaScript環(huán)境中,可以使用TextEncoder和TextDecoder?API?來進行?GBK?編碼和解碼,也可以使用?encodeURIComponent?函數對字符串進行編碼,最好使用第三方庫,比如iconv-lite來實現
    2023-12-12
  • JavaScript函數、方法、對象代碼

    JavaScript函數、方法、對象代碼

    函數定義可以嵌套在其他函數中,常用作子函數。但不能出現在循環(huán)或條件語句中。
    2008-10-10
  • js調用百度地圖及調用百度地圖的搜索功能

    js調用百度地圖及調用百度地圖的搜索功能

    本文給大家介紹js調用百度地圖的方法以及調用百度地圖的搜索功能,有需要的朋友可以跟著腳本之家的小編一起學習
    2015-09-09
  • JS實現單擊輸入框彈出選擇框效果完整實例

    JS實現單擊輸入框彈出選擇框效果完整實例

    這篇文章主要介紹了JS實現單擊輸入框彈出選擇框效果的方法,涉及JavaScript響應鼠標事件動態(tài)操作頁面元素與相關屬性的實現技巧,需要的朋友可以參考下
    2015-12-12
  • JavaScript 布爾操作符解析  && || !

    JavaScript 布爾操作符解析 && || !

    在一門編程語言中,布爾操作符的重要性堪比相等操作符。如果沒有測試兩個值關系的能力,那么諸如if...else和循環(huán)之類的語句就不會有用武之地了。布爾操作符一共有3個: 非、與、或
    2012-08-08

最新評論