摘要:用表示法表示的數(shù)值等于前面的數(shù)值乘以的指數(shù)次冪。下面是一個使用表示法表示數(shù)值的例子等于注意浮點(diǎn)類型精度控制的兩個方法是原型上實(shí)現(xiàn)的一個方法,其作用是對一個浮點(diǎn)數(shù)進(jìn)行四舍五入并保留固定小數(shù)位。
進(jìn)制表示
談到Number類型,不得不提進(jìn)制(此處不做過多介紹)
八進(jìn)制字面值的第一位必須是零(0),然后是八進(jìn)制數(shù)字序列(0~7)
十六進(jìn)制字面值的前兩位必須是 0x,后跟任何十六進(jìn)制數(shù)字(0~9 及 A~F)
var intNum = 55; // 整型 var octalNum1 = 070; // 八進(jìn)制的56 var octalNum2 = 079; // 無效的八進(jìn)制-解析為79 var hexNum1 = 0xA; // 十六進(jìn)制的10 var hexNum2 = 0x1f; // 十六進(jìn)制的31浮點(diǎn)數(shù)值
所謂浮點(diǎn)數(shù)值,就是該數(shù)值中必須包含一個小數(shù)點(diǎn),并且小數(shù)點(diǎn)后面必須至少有一位數(shù)字。雖然小 數(shù)點(diǎn)前面可以沒有整數(shù),但我們不推薦這種寫法。以下是浮點(diǎn)數(shù)值的幾個例子:
var floatNum1 = 1.1; var floatNum2 = 0.1; var floatNum3 = .1; // 有效,但不推薦
由于保存浮點(diǎn)數(shù)值需要的內(nèi)存空間是保存整數(shù)值的兩倍,因此 ECMAScript 會不失時機(jī)地將浮點(diǎn)數(shù)值轉(zhuǎn)換為整數(shù)值。顯然,如果小數(shù)點(diǎn)后面沒有跟任何數(shù)字,那么這個數(shù)值就可以作為整數(shù)值來保存。同樣地,如果浮點(diǎn)數(shù)值本身表示的就是一個整數(shù)(如 1.0),那么該值也會被轉(zhuǎn)換為整數(shù),如下面的例子所示:
var floatNum1 = 1.; // 小數(shù)點(diǎn)后面沒有數(shù)字——解析為 1 var floatNum2 = 10.0; // 整數(shù)——解析為 10
對于那些極大或極小的數(shù)值,可以用 e 表示法(即科學(xué)計(jì)數(shù)法)表示的浮點(diǎn)數(shù)值表示。用 e 表示法表示的數(shù)值等于 e 前面的數(shù)值乘以 10 的指數(shù)次冪。ECMAScript 中 e 表示法的格式也是如此,即前面是一個數(shù)值(可以是整數(shù)也可以是浮點(diǎn)數(shù)),中間是一個大寫或小寫的字母 E,后面是10的冪中的指數(shù),該冪值將用來與前面的數(shù)相乘。下面是一個使用 e 表示法表示數(shù)值的例子:
var floatNum = 3.125e7; // 等于31250000
注意: 0.1+0.2 !== 0.3
浮點(diǎn)類型精度控制的兩個方法 toFixed / toPrecision
toFixed是Number原型上實(shí)現(xiàn)的一個方法,其作用是對一個浮點(diǎn)數(shù)進(jìn)行四舍五入并保留固定小數(shù)位。 toFixed需要傳遞一個參數(shù),其調(diào)用方式如下:
100.456001.toFixed(2); //100.47 100.456001.toFixed(3); //100.456 Number.prototype.toFixed.call(100.456001,2); //100.47
toPrecison也是Number原型上實(shí)現(xiàn)的一個處理浮點(diǎn)數(shù)的方法,和toFixed不同的是,它是對一個浮點(diǎn)數(shù)進(jìn)行四舍五入并保留固定長度的有效數(shù)字,包括整數(shù)部分
99.456001.toPrecision(5); //99.456 100.456001.toPrecision(5); //100.46 Number.prototype.toPrecision.call(10.456001,5); //10.456Infinity / -Infinity
由于內(nèi)存的限制,ECMAScript 能夠表示的最小數(shù)值為5e-324,能夠表示的最大數(shù)值為1.7976931348623157e+308;
當(dāng)超出這個范圍時這個數(shù)值將被自動轉(zhuǎn)換成特殊的 Infinity 值。具體來說,如果這個數(shù)值是負(fù)數(shù),則會被轉(zhuǎn)換成-Infinity(負(fù)無窮),如果這個數(shù)值是正數(shù),則會被轉(zhuǎn)換成 Infinity(正無窮)
通過 isFinite() 判斷數(shù)值是否超出限制
非數(shù)字類型會先轉(zhuǎn)換成數(shù)值類型再做判別
未超出限制返回true,超出限制返回false
isFinite(NaN); // false isFinite(Infinity); // false isFinite(-Infinity); // false isFinite(0); // true isFinite("a"); // falseNaN
NaN,即非數(shù)值(Not a Number)是一個特殊的數(shù)值,這個數(shù)值用于表示一個本來要返回?cái)?shù)值的操作數(shù)未返回?cái)?shù)值的情況(這樣就不會拋出錯誤了)。
兩個特點(diǎn):
(1)任何涉及 NaN 的操作(例如 NaN/10)都會返回 NaN
(2)NaN 與任何值都不相等,包括 NaN 本身
通過 isNaN() 判斷變量是否為NaN
非數(shù)字類型會先轉(zhuǎn)換成數(shù)值類型再做判別
不是數(shù)值返回true,是數(shù)值返回false
alert(isNaN(NaN)); //true alert(isNaN(10)); //false(10 是一個數(shù)值) alert(isNaN("10")); //false(可以被轉(zhuǎn)換成數(shù)值 10) alert(isNaN("blue")); //true(不能轉(zhuǎn)換成數(shù)值) alert(isNaN(true)); //false(可以被轉(zhuǎn)換成數(shù)值 1)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/84742.html
摘要:中這樣描述和調(diào)用方法用來把對象轉(zhuǎn)換成原始類型的值數(shù)值字符串和布爾值。你很少需要自己調(diào)用此函數(shù)當(dāng)遇到一種需要轉(zhuǎn)換成一個原始值情況時候,會自動調(diào)用此函數(shù)。默認(rèn)情況下會被每個對象繼承。 MDN 中這樣描述 valueOf() 和 toString(): JavaScript 調(diào)用 valueOf() 方法用來把對象轉(zhuǎn)換成原始類型的值(數(shù)值、字符串和布爾值)。 你很少需要自己調(diào)用此函數(shù);當(dāng)...
摘要:一寫在前面最近重讀高級程序設(shè)計(jì),總結(jié)下來,查漏補(bǔ)缺。但這種影響是單向的修改命名參數(shù)不會改變中對應(yīng)的值。這是因?yàn)閷ο蟮拈L度是由傳入的參數(shù)個數(shù)決定的,不是由定義函數(shù)時的命名參數(shù)的個數(shù)決定的。實(shí)際改變會同步,改變也會同步 一、寫在前面 最近重讀《JavaScript高級程序設(shè)計(jì)》,總結(jié)下來,查漏補(bǔ)缺。 二、JS簡介 2.1 JS組成 ECMAscript:以ECMA-262為基礎(chǔ)的語言,由...
摘要:變量的特點(diǎn)變量是松散類型的,所謂松散類型就是可以用來保存任何類型的數(shù)據(jù)。 變量的特點(diǎn) js變量是松散類型的,所謂松散類型就是可以用來保存任何類型的數(shù)據(jù)。換句話說, 每個變量僅僅是一個用于保存值的占位符而已 js變量可以用來保存任何值,未經(jīng)過初始化的變量,會保存一個特殊的值—undefined,如:var msg; js變量的初始化并不會為它標(biāo)記類型;初始化的過程就是給變量賦一個值那...
摘要:操作符,會將數(shù)值改變正數(shù)變成負(fù)數(shù)負(fù)數(shù)變成正數(shù)。同時,也說明了,使用兩個邏輯非操作符和的操作結(jié)果相同。操作符得到的是余數(shù)。不相等操作符有兩種。 這篇筆記的內(nèi)容對應(yīng)的是《JavaScript高級程序設(shè)計(jì)(第三版)》中的第三章。 1.操作符 1-1 一元操作符 遞增和遞減操作符 遞增和遞減操作符有兩個 ++ 和 --。一元操作符使用的時候,可以前置也可以后置。由于兩個操作方式類似,先只說明 ...
摘要:數(shù)據(jù)類型中有種簡單數(shù)據(jù)類型也稱為基本數(shù)據(jù)類型和。在中非空字符串,非零數(shù)字,任意對象,都被認(rèn)為。而空字符串,和,,認(rèn)為是。用于表示整數(shù)和浮點(diǎn)數(shù)。標(biāo)識符由數(shù)字字母下劃線美元符組成,但首字母不能是數(shù)字。變量方法對象命名推薦駝峰法。 JavaScript語法 一.語法簡介 因?yàn)镴avaScript語法和Java等語法非常類似。所以只是簡單介紹一下。 大小寫 JavaScript是大小寫敏感的語...
閱讀 1487·2019-08-30 15:44
閱讀 1952·2019-08-30 14:07
閱讀 2879·2019-08-30 13:56
閱讀 2347·2019-08-29 17:06
閱讀 1330·2019-08-29 14:13
閱讀 2088·2019-08-29 11:28
閱讀 3233·2019-08-26 13:56
閱讀 1953·2019-08-26 12:11