W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
當把 Number 當作一個函數(shù)來調(diào)用,而不是作為構(gòu)造器,它執(zhí)行一個類型轉(zhuǎn)換。
如果提供了 value,返回 ToNumber(value) 計算出的數(shù)字值(非 Number 對象),否則返回 +0。
當把 Number 作為 new 表達式的一部分來調(diào)用,它是構(gòu)造器:它初始化新創(chuàng)建的對象。
新構(gòu)造對象的 [[Prototype]] 內(nèi)部屬性設(shè)定為原始數(shù)字原型對象,它是 Number.prototype 的初始值(15.7.3.1)。
新構(gòu)造對象的 [[Class]] 內(nèi)部屬性設(shè)定為 "Number"。
新構(gòu)造對象的 [[PrimitiveValue]] 內(nèi)部屬性在提供了 value 時設(shè)定為 ToNumber(value),否則設(shè)定為 +0。
新構(gòu)造對象的 [[Extensible]] 內(nèi)部屬性設(shè)定為 true。
Number 構(gòu)造器的 [[Prototype]] 內(nèi)部屬性值是函數(shù)原型對象 (15.3.4)。
除了內(nèi)部屬性和 length 屬性(值為 1)之外,Number 構(gòu)造器還有以下屬性:
Number.prototype 的初始值是數(shù)字原型對象。
這個屬性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。
Number.MAX_VALUE 的值是數(shù)字類型的最大正有限值,約為 1.7976931348623157 × 10308。
這個屬性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。
Number.MIN_VALUE 的值是數(shù)字類型的最小正有限值,約為 5 × 10-324。
這個屬性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。
Number.NaN 的值是 NaN。
這個屬性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。
Number.NEGATIVE_INFINITY 的值是?∞。
這個屬性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。
Number.POSITIVE_INFINITY 的值是 +∞。
這個屬性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。
數(shù)字原型對象其自身是 Number 對象(其 [[Class]] 是 "Number"),其值為 +0。
數(shù)字原型對象的 [[Prototype]] 內(nèi)部屬性值是標準內(nèi)置 Object 原型對象 (15.2.4)。
除非另外明確聲明,以下定義的數(shù)字原型對象的方法是非通用的,傳遞給它們的 this 值必須是數(shù)字值或 [[Class]] 內(nèi)部屬性值是 "Number" 的對象。
在以下對作為數(shù)字原型對象屬性的函數(shù)的描述中,短語“this Number 對象”是指函數(shù)調(diào)用中的 this 值,或如果 Type(this 值 ) 是 Number,“this Number 對象”指仿佛是用表達式 new Number(this value) 創(chuàng)建的對象,這里 Number 是標準內(nèi)置構(gòu)造器名。此外,短語“this 數(shù)字值”是指代表 this Number 對象的數(shù)字值,也就是 this Number 對象的 [[PrimitiveValue]] 內(nèi)部屬性值;或如果 this 是數(shù)字類型,“this 數(shù)字值”指 this 值。如果 this 值不是 [[Class]] 內(nèi)部屬性為 "Number" 的對象,也不是數(shù)字類型的值,則拋出一個 TypeError 異常。
Number.prototype.constructor 的初始值是內(nèi)置 Number 構(gòu)造器。
可選參數(shù) radix 應(yīng)當是 2 到 36 閉區(qū)間上的整數(shù)。如果 radix 不存在或是 undefined,用數(shù)字 10 作為 radix 的值。如果 ToInteger(radix) 是數(shù)字 10,則將 this Number 對象作為一個參數(shù)傳給 ToString 抽象操作;返回結(jié)果字符串值。
如果 ToInteger(radix) 不是在 2 到 36 閉區(qū)間上的整數(shù),則拋出一個 RangeError 異常。如果 ToInteger(radix) 是 2 到 36 的整數(shù),擔不是 10,則結(jié)果是 this 數(shù)字值使用指定基數(shù)表示法的字符串。字母 a-z 用來指值為 10 到 35 的數(shù)字?;鶖?shù)不為 10 時的精確算法是依賴于實現(xiàn)的,然而算法應(yīng)當是 9.8.1 指定算法的推廣形式。
toString 函數(shù)不是通用的;如果 this 值不是數(shù)字或 Number 對象,拋出一個 TypeError 異常。因此它不能當作方法轉(zhuǎn)移到其他類型對象上。
根據(jù)宿主環(huán)境的當前語言環(huán)境慣例來格式化 this 數(shù)字值,生成代表這個值的字符串。此函數(shù)是依賴于實現(xiàn)的,允許但不鼓勵它的返回值與 toString 相同。
此函數(shù)的第一個參數(shù)可能會用于本標準的未來版本 ; 建議實現(xiàn)不以任何用途使用這個參數(shù)位置。
返回 this 數(shù)字值。
valueOf 函數(shù)不是通用的;如果 this 值不是數(shù)字或 Number 對象,拋出一個 TypeError 異常。因此它不能當作方法轉(zhuǎn)移到其他類型對象上。
返回一個包含了 -- 代表 this 數(shù)字值的留有小數(shù)點后 fractionDigits 個數(shù)字的十進制固定小數(shù)點記法 -- 的字符串。如果 fractionDigits 是 undefined,就認為是 0。具體來說,執(zhí)行以下步驟:
toFixed 方法的 length 屬性是 1。
如果以多個參數(shù)調(diào)用 toFixed 方法,則行為是不確定的(見 15 章)。
實現(xiàn)是被允許在 fractionDigits 小于 0 或大于 20 時擴展 toFixed 的行為。在這種情況下,對這樣的 fractionDigits 值 toFixed 將未必拋出 RangeError。
對于某些值,toFixed 的輸出可比 toString 的更精確,因為 toString 只打印區(qū)分相鄰數(shù)字值的足夠的有效數(shù)字。例如 ,
(1000000000000000128).toString() 返回 "1000000000000000100",
而 (1000000000000000128).toFixed(0) 返回 "1000000000000000128".
返回一個代表 this 數(shù)字值的科學(xué)計數(shù)法的字符串,它的有效數(shù)字的小數(shù)點前有一個數(shù)字,有效數(shù)字的小數(shù)點后有 fractionDigits 個數(shù)字。如果 fractionDigits 是 undefined,包括指定唯一數(shù)字值需要的盡可能多的有效數(shù)字(就像 ToString,但在這里總是以科學(xué)計數(shù)法輸出)。具體來說執(zhí)行以下步驟:
toExponential 方法的 length 屬性是 1。
如果用多于一個參數(shù)調(diào)用 toExponential 方法,則行為是未定義的 ( 見 15 章 )。
一個實現(xiàn)可以擴展 fractionDigits 的值小于 0 或大于 20 時 toExponential 的行為。這種情況下對這樣的 fractionDigits 值,toExponential 不一定拋出 RangeError 異常 .
對于需要提供比上述規(guī)則更準確轉(zhuǎn)換的實現(xiàn),建議用以下算法作為指引替代步驟 9.b.i :
返回一個字符串,它代表 this 數(shù)字值的科學(xué)計數(shù)法(有效數(shù)字的小數(shù)點前有一個數(shù)字,有效數(shù)字的小數(shù)點后有 precision-1 個數(shù)字)或十進制固定計數(shù)法(precision 個有效數(shù)字)。如果 precision 是 undefined,用 ToString (9.8.1) 調(diào)用代替。具體來說執(zhí)行以下步驟:
toPrecision 方法的 length 屬性是 1。
如果用多于一個參數(shù)調(diào)用 toPrecision 方法,則行為是未定義的 ( 見 15 章 )。
一個實現(xiàn)可以擴展 precision 的值小于 1 或大于 21 時 toPrecision 的行為。這種情況下對這樣的 precision 值,toPrecision 不一定拋出 RangeError 異常 .
數(shù)字實例從數(shù)字原型對象繼承屬性,數(shù)字實例的 [[Class]] 內(nèi)部屬性是 "Number"。數(shù)字實例還有一個 [[PrimitiveValue]] 內(nèi)部屬性。
[[PrimitiveValue]] 內(nèi)部屬性是代表 this Number 對象的數(shù)字值。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: