JS数值

(1)精度
整数(不使用指数或科学计数法)会被精确到 15 位。
小数的最大数是 17 位,但是浮点的算数并不总是 100% 精准,使用乘除法可以解决:

var x = 0.2 + 0.1;         // x 将是 0.30000000000000004
var x = (0.2 * 10 + 0.1 * 10) / 10;       // x 将是 0.3

(2)数字和字符串相加
JavaScript 的加法和级联(concatenation)都使用 + 运算符。
数字用加法。字符串用级联。
JavaScript 从左向右进行编译:
数字+数字=数字
字符串+字符串=字符串
数字+字符串=(数字前字符串后的)字符串
字符串+数字=(字符串前数字后的)字符串

(3)数字字符串
JavaScript 字符串可以拥有数字内容,在所有数字运算中,JavaScript 会尝试将字符串转换为数字。但是遇到+,就会级联。

 var x = "100";
 var y = "10";
 var z = x / y;       // z 将是 10
 var z = x + y;       // z 不会是 110(而是 10010)

(4)NaN - 非数值
NaN 属于 JavaScript 保留词,指示某个数不是合法数。
NaN 是数,typeof NaN 返回 number

尝试用一个非数字字符串进行除法会得到 NaN(Not a Number)。
可使用全局 JavaScript 函数 isNaN() 来确定某个值是否是数

NaN+数字=NaN
NaN+字符串=(NaN前字符串后的)字符串

(5)Infinity
Infinity (或 -Infinity)是 JavaScript 在计算数时超出最大可能数范围时返回的值。
除以 0(零)也会生成 Infinity
Infinity是数:typeOf Infinity返回number

(6)十六进制
JavaScript 会把前缀为 0x 的数值常量解释为十六进制。

默认地,Javascript 把数显示为十进制小数。
使用 toString() 方法可以把数输出为十六进制、八进制或二进制。

var myNumber = 128;
myNumber.toString(16);     // 返回 80
myNumber.toString(8);      // 返回 200
myNumber.toString(2);      // 返回 10000000

(7)数值可以是对象
通常 JavaScript 数值是通过字面量创建的原始值:var x = 123
也可以通过关键词 new 定义为对象:var y = new Number(123),但是不建议这样做。
在 JavaScript 内部使用 valueOf() 方法可将 Number 对象转换为原始值。

当使用 == 相等运算符时,相等的数看上去相等
当使用 === 相等运算符后,相等的数变为不相等,因为 === 运算符需要类型和值同时相等。

var x = 500;             //数值number
var y = new Number(500); //对象object
// (x === y) 为 false,因为 x 和 y 的类型不同

(8)toString() 方法
toString() 以字符串类型返回数值。
所有数字方法可用于任意类型的数字(字面量、变量或表达式)

var x = 123;
x.toString();            // 从变量 x 返回 123
(123).toString();        // 从文本 123 返回 123
(100 + 23).toString();   // 从表达式 100 + 23 返回 123

(9)toExponential() 方法
toExponential() 返回字符串值,它包含已被四舍五入并使用指数计数法的数字。
参数定义小数点后的字符数(若无参数,则不会舍入):

var x = 9.656;
x.toExponential(2);     // 返回 9.66e+0
x.toExponential(4);     // 返回 9.6560e+0
x.toExponential(6);     // 返回 9.656000e+0

(10)toFixed() 方法
toFixed() 返回字符串值,它包含了指定位数小数的数字。

var x = 9.656;
x.toFixed(0);           // 返回 10
x.toFixed(2);           // 返回 9.66   适合处理金钱
x.toFixed(4);           // 返回 9.6560
x.toFixed(6);           // 返回 9.656000

(11)toPrecision() 方法
toPrecision() 返回字符串值,它包含了指定长度的数字。

var x = 9.656;
x.toPrecision();        // 返回 9.656
x.toPrecision(2);       // 返回 9.7
x.toPrecision(4);       // 返回 9.656
x.toPrecision(6);       // 返回 9.65600

(12)valueOf() 方法
valueOf() 以数值返回数值。
valueOf() 方法可将 Number 对象转换为原始值number。

var x = 123;
x.valueOf();            // 从变量 x 返回 123
(123).valueOf();        // 从文本 123 返回 123
(100 + 23).valueOf();   // 从表达式 100 + 23 返回 123

(13)把变量转换为数值
这三种 JavaScript 方法可用于将变量转换为数字。
这些方法并非数字方法,而是全局 JavaScript 方法,可用于所有 JavaScript 数据类型。

Number() 方法
可用于把 JavaScript 变量转换为数值。
如果无法转换数字,则返回 NaN。

用于日期的 Number() 方法
Number() 还可以把日期转换为数字:

Number(new Date("2019-04-15"));    // 返回 1506729600000

上面的 Number() 方法返回 1970 年 1 月 1 日至今的毫秒数。

●parseInt() 方法
解析一段字符串并返回数值。允许空格。只返回首个数字。

如果无法转换为数值,则返回 NaN (Not a Number)。即如果遇到的第一个字符不是数字,返回NaN。

●parseFloat() 方法
同上,只是返回的可以是小数。

(14)数值属性
MAX_VALUE : 返回 JavaScript 中可能的最大数字。
MIN_VALUE : 返回 JavaScript 中可能的最小数字。
NEGATIVE_INFINITY :表示负的无穷大(溢出返回)。
NaN: 表示非数字值(“Not-a-Number”)。
POSITIVE_INFINITY:表示无穷大(溢出返回)。

注意:数字属性不可用于变量
数字属性属于名为 number 的 JavaScript 数字对象包装器。
这些属性只能作为 Number.MAX_VALUE 访问。
使用 myNumber.MAX_VALUE,其中 myNumber 是变量、表达式或值,将返回 undefined

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值