Number

在javaScript中所有的数值都是number类型,包括整数和浮点数;JavaScript采用IEEE754标准定义的64位浮点格式表示数字。

在JS中,除了用十进制来表示一个整数,也可以用十六进制,和八进制。
所谓十六进制是指以0x或0X为前缀,其后跟随十六进制的直接量(0-9,a-f)的字母构成。例如:

var a  = 0xff; //定义并为a进行赋值
console.log(a); //返回255,因为0xff代表十进制的255

同样也可以用八进制的方法,八进制是以0开始,随后跟随0-7之间的数字组成。例如:

var a = 0377;//定义并为a进行赋值
console.log(a); //返回255,因为0377代表十进制的255

此处注意⚠️:在ECMAScript 6 的严格模式下,八进制是明令禁止的;因此,尽量避免使用吧;

Number的溢出和下溢

  • 在JS中可以使用语句Number.MAX_VALUE来查看JS中能够表示的正负数最大值;
console.log(Number.MAX_VALUE); //返回结果 1.7976931348623157e+308
console.log(-Number.MAX_VALUE); //返回结果 -1.7976931348623157e+308

所谓溢出是指当运算结果超出了JS所能表示的数字上限;当出现这种情况时,返回的结果将会是无穷大值(Infinity),同样当负数超过了JS能表达的负数范围,结果就为负无穷大(-Infinity); 注意,在这里我们要记住任何非0的数除以0,会返回无穷大;但是有一个特殊的情况,0除以0是没有任何意义的,因为他的返回结果为NaN;具体关于上述例子如下:

var a = Number.MAX_VALUE; //定义js中能表示的最大正值
console.log(a*a); // 返回结果为 Infinity
var a = Number.MAX_VALUE; //定义js中能表示的最大正值
console.log(-a*a);// 返回结果为 -Infinity
console.log(-1/0);// 返回结果为 -Infinity
console.log(1/0);// 返回结果为 Infinity
console.log(0/0);// 返回结果为 NaN
  • 在JS中可以使用语句Number.MIN_VALUE来查看0以上的最小值;
console.log(Number.MIN_VALUE);//返回 5e-324.

所谓下溢是指当运算结果无限的接近于0,并比0能表示的最小值还小的时候发生的一种情形。通常在这种情况下,JS结果将会返回0;而当一个负数发生下溢时,将会返回-0;

console.log(Number.MIN_VALUE/2); //返回0.因为正数出现了下溢
console.log(-Number.MIN_VALUE/2); //返回-0.因为负数出现了下溢

NaN

NaN的数据类型是number,但它有一个非常特殊的特点,那就是它和任何值都不相等,包括自身;

var a="abc";
var b="abc";
a===b; //=>true, 字符串值相等
var c = 1/a;// =>NaN 因为数字除以字符串无法做运算,返回NaN
var d = 1/b;// =>NaN 同上
c===d;//返回false,因为NaN和任何数值都不相等,包括自身

常用的Math对象方法(个人笔记)

Math.pow(2,10); //=>1024, 2的10字幂
Math.round(5.6); // =>6, 四舍五入
Math.ceil(3.2); //=>4,向上取整
Math.floor(3.8); // =>3,向下取整
Math.abs(-3); // =>3,取绝对值
Math.max(3, 4, 9);// =>9,取最大值
Math.min(3, 4, 9); // =>3,取最小值
Math.random(); // 获取0-1之间的随机数
Math.PI // =>圆周率
Math.sqrt(9); //=>3, 9的平方根