JavaScript中的数字类型

64次阅读

共计 2052 个字符,预计需要花费 6 分钟才能阅读完成。

JavaScript 语言中只有一种数值类型,就是 number 类型,这个类型的值可以选择带小数点或者不带小数点。不像其他语言中还分成了整型、浮点型、长整型、单精度、双精度等等。

数字类型的使用

我们在声明数字类型时,可以带小数点,也可以不带,或者使用科学计数法。

示例:

下面是我们声明的两个 number 类型的变量:

var a = 7;
var b = 1.25;

在声明数字类型的变量时,不需要加引号,这就是数字类型和字符串类型的区别,例如我们看下面这两个变量:

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

其中变量 num1 是数字类型,变量 num2 是字符串类型。JavaScript 语言中给我们提供了一个 typeof 方法,用来查看变量的类型,例如:

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

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

某些时候,比较大或比较小且位数较多的数字,可以使用科学计数法来写,避免浪费很多空间和时间。

示例:

用科学记数法表示数时,不改变数的符号,只是改变数的书写形式而已:

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

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

数字类型的精度

Number 类型的值,整数最多会被精确到 15 位,而小数最多 17 位,但是浮点的算数并不总是 100% 精准。

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

如果我们想让小数的计算结果更精准一点,可以使用乘除法来解决这个问题:

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

数字与字符串类型相加

与其他编程语言还有一个不同在于,JavaScript 语言中数字与字符串类型可以直接通过 + 加号相加,结果也会输出一个字符串。

如果你学过其他编程语言,例如 Python 等,你就会知道在其他编程语言中,不同类型的值是不能相加的,除非进行类型转换,但是 JavaScript 中可以哟。

示例:

数字与数字相加:

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

数字与字符串相加:

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

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

从上述三个示例的输出结果,我们就能看出,数字与字符串两个不同类型变量,使用 加号 + 连接,最终的结果为 string 类型。

非数值 NaN

某些时候,当你对数据类型使用不恰当时,可能会得到 NaN,这是属于 JavaScript 的保留字,指示某个数不是合法数。

示例:

那么什么数是不合法的呢,例如下面这些:

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

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

使用数字与内容为英文字母的字符串进行乘除,最终结果将会得到 NaN。

注意,假如字符串中只包含数值,输出的结果为 number 类型:

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

那我们并不确定哪个数是合法的,哪个数是不合法的,要怎么办?不用担心,JavaScript 语言中给我们提供了一个函数 isNaN() 来判断一个值是否是合法数。

示例:
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 是一个非数值,返回 false 则表示变量 b 是一个合法数。

动手练习

  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. 声明一个数字类型的变量 a,和一个字符串类型的变量 b,使用加号 + 连接这两个类型的变量,并将之赋值给变量 c,最后输出这个变量 c 是否是合法数?(变量的值自定义即可)。

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

正文完
 0