国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript原生對(duì)象之Number對(duì)象的屬性和方法詳解

2024-05-06 16:16:44
字體:
供稿:網(wǎng)友
這篇文章主要介紹了JavaScript原生對(duì)象之Number對(duì)象的屬性和方法詳解,本文講解了創(chuàng)建 Number 對(duì)象的語法、MAX_VALUE、MIN_VALUE、NaN等屬性或方法,需要的朋友可以參考下
 

創(chuàng)建 Number 對(duì)象的語法:

復(fù)制代碼代碼如下:

var myNum = new Number(value);
var myNum = Number(value);

當(dāng) Number() 和運(yùn)算符 new 一起作為構(gòu)造函數(shù)使用時(shí),它返回一個(gè)新創(chuàng)建的 Number 對(duì)象。如果不用 new 運(yùn)算符,把 Number() 作為一個(gè)函數(shù)來調(diào)用,它將把自己的參數(shù)轉(zhuǎn)換成一個(gè)原始的數(shù)值,并且返回這個(gè)值(如果轉(zhuǎn)換失敗,則返回 NaN)。

 

MAX_VALUE

MAX_VALUE 屬性是 JavaScript 中可表示的最大的數(shù)。它的近似值為 1.7976931348623157 x 10308。最大的負(fù)數(shù)是 -MAX_VALUE。

比MAX_VALUE還要大的數(shù)是Infinity。MAX_VALUE是一個(gè)靜態(tài)屬性,所以調(diào)用方法應(yīng)該是Number.MAX_VALUE。

 

復(fù)制代碼代碼如下:

console.log(Number.MAX_VALUE)  //1.7976931348623157e+308

 

MIN_VALUE

MIN_VALUE 屬性是 JavaScript 中可表示的最小的數(shù)(接近 0 ,但不是負(fù)數(shù))。它的近似值為 5 x 10-324 

所有比MIN_VALUE小的數(shù)都會(huì)被轉(zhuǎn)換成0。

MIN_VALUE是一個(gè)靜態(tài)屬性,所以調(diào)用方法應(yīng)該是 Number.MIN_VALUE。

NaN

NaN 屬性是代表非數(shù)字值的特殊值。該屬性用于指示某個(gè)值不是數(shù)字。可以把 Number 對(duì)象設(shè)置為該值,來指示其不是數(shù)字值。

可以使用 isNaN() 全局函數(shù)來判斷一個(gè)值是否是 NaN 值。

Number.NaN 是一個(gè)特殊值,說明某些算術(shù)運(yùn)算(如求負(fù)數(shù)的平方根)的結(jié)果不是數(shù)字。方法 parseInt() 和 parseFloat() 在不能解析指定的字符串時(shí)就返回這個(gè)值。對(duì)于一些常規(guī)情況下返回有效數(shù)字的函數(shù),也可以采用這種方法,用 Number.NaN 說明它的錯(cuò)誤情況。

JavaScript 以 NaN 的形式輸出 Number.NaN。請(qǐng)注意,NaN 與其他數(shù)值進(jìn)行比較的結(jié)果總是不相等的,包括它自身在內(nèi)。因此,不能與 Number.NaN 比較來檢測(cè)一個(gè)值是不是數(shù)字,而只能調(diào)用 isNaN() 來比較。

注意:全局變量NaN 和Number.NaN 是一樣的,NaN是一個(gè)不可配置,不可修改的屬性。

復(fù)制代碼代碼如下:

console.log(parseInt("abc"));    //NaN
console.log(NaN === NaN);        //false
console.log(Number.NaN === NaN); //false
console.log(isNaN(NaN));         //true
console.log(isNaN(Number.NaN));  //true

 

NEGATIVE_INFINITY

NEGATIVE_INFINITY 屬性表示小于 -Number.MAX_VALUE 的值。該值代表負(fù)無窮大。

JavaScript 顯示 NEGATIVE_INFINITY 時(shí)使用的是 -Infinity。這個(gè)值的算術(shù)行為和無窮大非常相似。例如,任何數(shù)乘無窮大結(jié)果仍為無窮大,任何數(shù)被無窮大除的結(jié)果為 0。

-Infinity 和 Number.NEGATIVE_INFINITY 相等。

復(fù)制代碼代碼如下:

var x = (-Number.MAX_VALUE) * 2;
var y = Number.NEGATIVE_INFINITY;
console.log(x);     //-Infinity
console.log(y);     //-Infinity
console.log(x===y); //true

 

POSITIVE_INFINITY

POSITIVE_INFINITY 屬性表示大于 Number.MAX_VALUE 的值。該值代表正無窮大。

JavaScript 顯示 POSITIVE_INFINITY 時(shí)使用的是 Infinity。這個(gè)值的算術(shù)行為和無窮大非常相似。例如,任何數(shù)乘無窮大結(jié)果仍為無窮大,任何數(shù)被無窮大除的結(jié)果為 0。

Infinity 和 Number.POSITIVE_INFINITY相等。

isFinite() 方法可以判斷參數(shù)是否是有限的數(shù)字。

復(fù)制代碼代碼如下:

var x = Number.NEGATIVE_INFINITY;
var y = Number.POSITIVE_INFINITY;
var z = Infinity;
var a = "abc";
var b = 123;

 

console.log(isFinite(x));  //false
console.log(isFinite(y));  //false
console.log(isFinite(z));  //false
console.log(isFinite(a));  //false
console.log(isFinite(b));  //true

 

toString()

toString() 方法可把一個(gè) Number 對(duì)象轉(zhuǎn)換為一個(gè)字符串,并返回結(jié)果。

NumberObject.toString(radix)

參數(shù)radix是可選的。規(guī)定表示數(shù)字的基數(shù),使 2 ~ 36 之間的整數(shù)。若省略該參數(shù),則使用基數(shù) 10,建議總是帶著此參數(shù),防止誤解。例如,當(dāng) radix 為 2 時(shí),NumberObject 會(huì)被轉(zhuǎn)換為二進(jìn)制值表示的字符串。

當(dāng)調(diào)用該方法的對(duì)象不是 Number 時(shí)拋出 TypeError 異常。

 

復(fù)制代碼代碼如下:

var a = 100;

 

console.log(a.toString());    //100
console.log(a.toString(10));  //100
console.log(a.toString(2));   //1100100
console.log(a.toString(8));   //144
console.log(a.toString(16));  //64

 

toLocaleString()

toLocaleString() 方法可把一個(gè) Number 對(duì)象轉(zhuǎn)換為本地格式的字符串。

數(shù)字的字符串表示,由實(shí)現(xiàn)決定,根據(jù)本地規(guī)范進(jìn)行格式化,可能影響到小數(shù)點(diǎn)或千分位分隔符采用的標(biāo)點(diǎn)符號(hào)。

當(dāng)調(diào)用該方法的對(duì)象不是 Number 時(shí)拋出 TypeError 異常。

復(fù)制代碼代碼如下:

var a = 123456;

 

console.log(a.toLocaleString());  //123,456
console.log(a.toLocaleString("zh-Hans-CN-u-nu-hanidec"));  //一二三,四五六

 

更多參數(shù)可以參考:MDN

toFixed()

toFixed() 方法可把 Number 四舍五入為指定小數(shù)位數(shù)的數(shù)字。

NumberObject.toFixed(num)

參數(shù)num是必需的。規(guī)定小數(shù)的位數(shù),是 0 ~ 20 之間的值,包括 0 和 20,有些實(shí)現(xiàn)可以支持更大的數(shù)值范圍。如果省略了該參數(shù),將用 0 代替。

返回 NumberObject 的字符串表示,不采用指數(shù)計(jì)數(shù)法,小數(shù)點(diǎn)后有固定的 num 位數(shù)字。如果必要,該數(shù)字會(huì)被舍入,也可以用 0 補(bǔ)足,以便它達(dá)到指定的長度。如果 num 大于 le+21,則該方法只調(diào)用 NumberObject.toString(),返回采用指數(shù)計(jì)數(shù)法表示的字符串。

當(dāng) num 太小或太大時(shí)拋出異常 RangeError。0 ~ 20 之間的值不會(huì)引發(fā)該異常。有些實(shí)現(xiàn)支持更大范圍或更小范圍內(nèi)的值。當(dāng)調(diào)用該方法的對(duì)象不是 Number 時(shí)拋出 TypeError 異常。

復(fù)制代碼代碼如下:

var n = 12345.6789;

 

console.log(n.toFixed());            //12346
console.log(n.toFixed(2));           //12345.68
console.log(n.toFixed(6));           //12345.678900
console.log((1.23e+20).toFixed(2));  //123000000000000000000.00
console.log((1.23e-10).toFixed(2));  //0.00

 

注意:由于對(duì)浮點(diǎn)數(shù)的處理,toFixed() 方法展現(xiàn)出的結(jié)果并不是所謂的“四舍五入”或者是“四舍六入五成雙”,而是四舍,六入,五的表現(xiàn)十分混亂。

復(fù)制代碼代碼如下:

//Chrome中
console.log(( 0.035 ).toFixed( 2 )); //0.04
console.log(( 0.045 ).toFixed( 2 )); //0.04

 

建議自己寫方法來替換toFixed()默認(rèn)行為,可以參考:SO上的討論:

 

復(fù)制代碼代碼如下:

Number.prototype.toFixed = function(len){
    var temp = Math.pow(10,len);
    var s = Math.ceil(this * temp)
    return s/temp;
}

 

console.log(( 0.035 ).toFixed( 2 ));  //0.04
console.log(( 0.045 ).toFixed( 2 ));  //0.05

 

toExponential()

toExponential() 方法可把對(duì)象的值轉(zhuǎn)換成指數(shù)計(jì)數(shù)法。

NumberObject.toExponential(num)

參數(shù)num是可選的。規(guī)定指數(shù)計(jì)數(shù)法中的小數(shù)位數(shù),是 0 ~ 20 之間的值,包括 0 和 20,有些實(shí)現(xiàn)可以支持更大的數(shù)值范圍。如果省略了該參數(shù),將使用盡可能多的數(shù)字。

返回 NumberObject 的字符串表示,采用指數(shù)計(jì)數(shù)法,即小數(shù)點(diǎn)之前有一位數(shù)字,小數(shù)點(diǎn)之后有 num 位數(shù)字。該數(shù)字的小數(shù)部分將被舍入,必要時(shí)用 0 補(bǔ)足,以便它達(dá)到指定的長度。

當(dāng) num 太小或太大時(shí)拋出異常 RangeError。0 ~ 20 之間的值不會(huì)引發(fā)該異常。有些實(shí)現(xiàn)支持更大范圍或更小范圍內(nèi)的值。當(dāng)調(diào)用該方法的對(duì)象不是 Number 時(shí)拋出 TypeError 異常。

 

復(fù)制代碼代碼如下:

var num = 10000.1234;

 

console.log(num.toExponential());    //1.00001234e+4
console.log(num.toExponential(2));   //1.00e+4
console.log(num.toExponential(10));  //1.0000123400e+4

 

toPrecision()

toPrecision() 方法可將數(shù)值格式化為一個(gè)十進(jìn)制數(shù)形式的字符串。

NumberObject.toPrecision(num)

參數(shù)num是可選的。用于控制數(shù)字的精度。該參數(shù)是 1 ~ 21 之間(且包括 1 和 21)的值。如果省略了該參數(shù),則調(diào)用方法 toString(),而不是把數(shù)字轉(zhuǎn)換成十進(jìn)制的值。

 

復(fù)制代碼代碼如下:

var num = 10000.1234;

 

console.log(num.toPrecision());    //10000.1234
console.log(num.toPrecision(2));   //1.0e+4
console.log(num.toPrecision(10));  //10000.12340


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 吴忠市| 曲靖市| 兴仁县| 喀什市| 宝清县| 灌阳县| 托克逊县| 手游| 昆明市| 怀宁县| 资阳市| 宜都市| 麻江县| 西华县| 洪江市| 平安县| 南丰县| 长阳| 仲巴县| 景洪市| 丰城市| 淳安县| 汉川市| 吉林省| 册亨县| 疏附县| 济宁市| 宁都县| 银川市| 抚顺县| 永泰县| 富顺县| 武功县| 扶风县| 佳木斯市| 西平县| 清涧县| 历史| 乐平市| 蒲城县| 油尖旺区|