一、JavaScript 数字
超大或超小的数可通过科学计数法来写:
1
2
var x = 123e5; // 12300000
var y = 123e-5; // 0.00123
JavaScript 数值始终以双精度浮点数来存储,根据国际 IEEE 754 标准。
数字和字符串相加
1
2
3
4
var x = 10;
var y = 20;
var z = "30";
var result = x + y + z;
答案为:3030
JavaScript 从左向右进行编译。因为 x 和 y 都是数,10 + 20 将被相加。因为 z 是字符串,30 + “30” 被级联。
在所有数字运算中,JavaScript 会尝试将字符串转换为数字
1
2
3
var x = "100";
var y = "10";
var z = x / y; // z 将是 10
例外:
1
2
3
var x = "100";
var y = "10";
var z = x + y; // z 不会是 110(而是 10010)
例子中,JavaScript 用 + 运算符对字符串进行了级联。
二.NaN - 非数值
NaN
属于 JavaScript 保留词,指示某个数不是合法数。
尝试用一个非数字字符串进行除法会得到 NaN(Not a Number):
var x = 100 / "Apple"; // x 将是 NaN(Not a Number)
函数 isNaN() 来确定某个值是否是数
1
2
var x = 100 / "Apple";
isNaN(x); // 返回 true,因为 x 不是数
在数学运算中使用了 NaN,则结果也将是 NaN
但也许是串连接:
1
2
3
var x = NaN;
var y = "5";
var z = x + y; // z 将是 NaN5
NaN 是数,typeof NaN 返回 number
三.Infinity
Infinity (或 -Infinity)是 JavaScript 在计算数时超出最大可能数范围时返回的值。
1
2
3
while (myNumber != Infinity) { // 执行直到 Infinity
........
}
除以 0(零)也会生成 Infinity
Infinity 是数:typeOf Infinity 返回 number
。
四.JavaScript 常用数值方法
toString() 以字符串返回数值。
valueOf() 以数值返回数值
toFixed() 返回字符串值,它包含了指定位数小数的数字
五.把变量转换为数值
这三种 JavaScript 方法可用于将变量转换为数字:
- Number() 方法
- parseInt() 方法
- parseFloat() 方法
这些方法并非数字方法,而是全局 JavaScript 方法。
实例1:
1
2
3
4
5
6
7
8
9
10
x = true;
Number(x); // 返回 1
x = false;
Number(x); // 返回 0
x = new Date();
Number(x); // 返回 1404568027739
x = "10"
Number(x); // 返回 10
x = "10 20"
Number(x); // 返回 NaN
实例2:
1
2
3
4
5
parseInt("10"); // 返回 10
parseInt("10.33"); // 返回 10
parseInt("10 20 30"); // 返回 10
parseInt("10 years"); // 返回 10
parseInt("years 10"); // 返回 NaN
实例3:
1
2
3
4
5
parseFloat("10"); // 返回 10
parseFloat("10.33"); // 返回 10.33
parseFloat("10 20 30"); // 返回 10
parseFloat("10 years"); // 返回 10
parseFloat("years 10"); // 返回 NaN
六.数字属性不可用于变量
数字属性属于名为 Number
的 JavaScript 数字对象包装器。
这些属性只能作为 Number.MAX_VALUE
访问,使用变量、表达式或值,将返回 undefined:
1
2
var x = 6;
var y = x.MAX_VALUE; // y 成为 undefined