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