js所有数值都用浮点数来表示
十六进制数字以0x或者0X为前缀,由0-9,a-f(大小写均可)之间字符构成,a-f对应的数值是10-15
八进制数字以数字0开始,其后跟随0-7之间的数字,严格来说,js是禁止8进制的直接量的
浮点数可以用指数计数法来标识,
比如6.02e23表示6.02*1023
1.4738223e-23表示1.4738223*10-23
js的数学运算符包含+(加法),-(减法),*(乘法),/(除法),%(求余:求整数除后的余数)等
更加复杂的数学运算作为Math对象的属性定义的函数和常量来表示
Math.pow(2,53) 2的53次幂
Math.round(.6) 四舍五入为1
Math.ceil(.6) 向上求整为1
Math.floor(.6) 向下求整为0
Math.abs(-5) 求绝对值
Math.max(x,y,z) 返回最大值
Math.min(x,y,z) 返回最小值
Math.random() 生成一个大于等于0小于1的伪随机数
Math.PI π,圆周率
Math.E 自然对数的底数
Math.sqrt(3) 3的平方根
Math.pow(3,1/3) 3的立方根
Math.sig(0) 三角函数,还有Math.cos,Math.atan
Math.log(10) 10的自然对数
Math.log(100)/Math.LN10 以10为底100的对数
Math.exp(3) e的3次幂
js预定义了全局变量 Infinity 和 NaN ,用来表示正无穷大和非数字值
NaN有个特点就是他和任何值都不相等,包括自身
二进制浮点数编程有个问题,就是数值相等的比较
例如
var x=.3-.2;
var y=.2-.1;
x==y
返回值是false,也就是不相等
所以要尽量避免小数运算,例如金额可以使用整数分来运算,而不是使用小数元来运算