JavaScript中的數(shù)字類型

JavaScript 語言中只有一種數(shù)值類型,就是 number 類型,這個類型的值可以選擇帶小數(shù)點或者不帶小數(shù)點。不像其他語言中還分成了整型、浮點型、長整型、單精度、雙精度等等。

數(shù)字類型的使用

我們在聲明數(shù)字類型時,可以帶小數(shù)點,也可以不帶,或者使用科學計數(shù)法。

示例:

下面是我們聲明的兩個 number 類型的變量:

var a = 7;
var b = 1.25;

在聲明數(shù)字類型的變量時,不需要加引號,這就是數(shù)字類型和字符串類型的區(qū)別,例如我們看下面這兩個變量:

var num1 = 100;
var num2 = '100';

其中變量 num1 是數(shù)字類型, 變量 num2 是字符串類型。JavaScript 語言中給我們提供了一個 typeof 方法,用來查看變量的類型,例如:

var num1 = 100;
var num2 = '100';

console.log(typeof(num1));  // number
console.log(typeof(num2));  // string

某些時候,比較大或比較小且位數(shù)較多的數(shù)字,可以使用科學計數(shù)法來寫,避免浪費很多空間和時間。

示例:

用科學記數(shù)法表示數(shù)時,不改變數(shù)的符號,只是改變數(shù)的書寫形式而已:

var c = 156e4;
var d = 325e-3;

console.log(c, typeof(c));  // 1560000 "number"
console.log(d, typeof(d));  // 0.325 "number"

數(shù)字類型的精度

Number 類型的值,整數(shù)最多會被精確到15位,而小數(shù)最多17位,但是浮點的算數(shù)并不總是 100% 精準。

示例:
var a = 111111111111111;
var b = 0.9 + 0.69;
console.log(a);  // 111111111111111
console.log(b);  // 1.5899999999999999

如果我們想讓小數(shù)的計算結果更精準一點,可以使用乘除法來解決這個問題:

var a = (0.3*10 + 0.6*10) / 10;
console.log(a);  // 0.

數(shù)字與字符串類型相加

與其他編程語言還有一個不同在于,JavaScript語言中數(shù)字與字符串類型可以直接通過 + 加號相加,結果也會輸出一個字符串。

如果你學過其他編程語言,例如Python等,你就會知道在其他編程語言中,不同類型的值是不能相加的,除非進行類型轉換,但是 JavaScript 中可以喲。

示例:

數(shù)字與數(shù)字相加:

var a = 7;
var b = 96;
console.log(a + b);  // 103

console.log(typeof(a + b));  // number

字符串與字符串相加:

var c = "55";
var d = "77";
console.log(c + d);  // 5577

console.log(typeof(c + d));  // string

數(shù)字與字符串相加:

var a = 7;
var c = "55";
console.log(a + c);  // 755

console.log(typeof(a + c));  // string

從上述三個示例的輸出結果,我們就能看出,數(shù)字與字符串兩個不同類型變量,使用 加號+ 連接,最終的結果為 string 類型。

非數(shù)值NaN

某些時候,當你對數(shù)據(jù)類型使用不恰當時,可能會得到 NaN,這是屬于 JavaScript 的保留字,指示某個數(shù)不是合法數(shù)。

示例:

那么什么數(shù)是不合法的呢,例如下面這些:

var a = 5 * "xkd";
var b = 21 / "xkd";

console.log(a);  // NaN
console.log(b);  // NaN

使用數(shù)字與內容為英文字母的字符串進行乘除,最終結果將會得到 NaN。

注意,假如字符串中只包含數(shù)值,輸出的結果為 number 類型:

var a = 9 * "3";
console.log(a);  // 27
console.log(typeof(a));  // number

那我們并不確定哪個數(shù)是合法的,哪個數(shù)是不合法的,要怎么辦? 不用擔心,JavaScript 語言中給我們提供了一個函數(shù) isNaN() 來判斷一個值是否是合法數(shù)。

示例:
var a = 9 * "9xkd";
var b = 9 * "3";

console.log(a);  // NaN
console.log(b);  // 27

console.log(isNaN(a));  // true
console.log(isNaN(b));  // false

結果返回 true 則表示變量 a 是一個非數(shù)值,返回 false 則表示變量 b 是一個合法數(shù)。

動手練習

  1. 請問下列代碼的輸出結果分別是什么?
var n1 = 100;
var n1;
var n2 = 200;
var n1, n3 = 300;
var n2, n4 = 400;

console.log(n1);
console.log(n2);
console.log(n3);
console.log(n4);

2.聲明一個數(shù)字類型的變量 a,和一個字符串類型的變量 b,使用加號+ 連接這兩個類型的變量,并將之賦值給變量 c,最后輸出這個變量 c 是否是合法數(shù)?(變量的值自定義即可)。

更多可以查看:https://www.9xkd.com/

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容