javascript不区分整数和浮点数
当一个数字直接出现在程序中,我们称之为数字直接量(numeric literal)
整形直接量
包括十进制和十六进制,十六进制以0x或0X为前缀
浮点型直接量
实数写法,整数+.+小数
指数计数法写法 2.8E15 3.6e-23
算数运算
简单运算包括加减乘除和求余(%)
复杂运算通过Math对象来实现,比如Math.abs(-5)
NaN和Infinity
js算数运算溢出时不会报错,上溢(overflow)返回无穷大,用Infinity或者-Infinity,下溢(underflow)返回0。所以被0整除返回Inifity或-Inifity,不报错,但0/0返回NaN(not a number)。
0/0 // NaN
1/0 // Infinity
-1/0 // -Infinity
-1/0+3 //-Infinity
Infinity*0 //NaN
js预定义了全局变量Inifity和NaN,表示无穷大和非数字值,它们是只读的,不能被修改(ES5开始)。
NaN有个特性,它和谁都不相等,包括自己,判读一个x是否是NaN不能用x==NaN,而要用x!=x或isNaN(),如果结果是true,则x为NaN。
var p = NaN
p != p //true
isNaN(p) //true
日期时间
js核心包括Date()日期构造函数,用来创建日期和时间对象,所以Date是对象类型,不是原始类型。