JavaScript读书笔记(一) 数字

参照内容来自《JavaScript权威指南》

数字:

JavaScript中不区分整数值和浮点数值,所有的数字均用浮点数值表示。

当一个数字直接出现在JavaScript程序中,我们称之为数字直接量。数字直接量包括以下两种:

(1) 整型直接量:使用十进制或十六进制表示。

(2) 浮点直接量:采用传统的实数写法或者指数计数法。传统的实数写法即由整数部分、小数点和小数部分组成。指数计数法即在实数后跟字母e或E,后面再跟正负号,其后再加一个整型的指数。例:1.4738223E-32→1.4738223×10-32

注:

(1) JavaScript表示实数时,常常使用的只是真实值的一个近似值。JavaScript采用浮点数表示法,这是一种二进制表示法。二进制浮点数表示法并不能精确表示类似0.1这样简单的数字。任何使用二进制浮点数的编程语言中都会有这个问题。例如:

var x = .3 - .2;

var y = .2 - .1;

这里的x与y并不相等,因为x并不等于0.1,y也不等于0.1,两者都是近似值,由于舍入误差,两者不相等。

(2) Date()构造函数,用来创建表示日期和时间的对象。日期对象不像数字那样是基本数据类型。


JavaScript的算术运算

JavaScript中的算术运算在溢出(overflow)、下溢(underflow)或被零整除时不会报错。

以上三种情况详情:

(1)溢出:数字运算结果超过了JavaScript所能表达的数字上限→无穷大(正无穷大(Infinity),负无穷大(-Infinity:即超过了JavaScript所能表示的负数的范围));

(2)下溢:数字运算结果无限接近于零,比JavaScript能表示的最小的数还小→结果为0(负零);

(3)零整除:当被除数为零时,返回无穷大(Infinity)或负无穷大(-Infinity);当被除数为零,即零除以零时,没有意义,返回NaN(not-a-number);

返回NaN的情况有:

(1) 零除以零; (2) 无穷大除以无穷大; (3) 给负数开方; (4) 算术运算符与不是数字或者无法转换为数字的操作数一起使用。

注:

(1) Infinity:全局变量,表示正无穷大,只读,不允许修改。

(2) NaN:全局变量,表示非数字值,只读,不允许修改。

(3) 非数字值:在JavaScript中,非数字值(即除数字之外的值,例如字符串,对象,NaN等)与任何值都不相等,包括自身。即该值无法通过x==NaN来判断x是否为NaN,应使用x!=NaN,或者使用isNaN(),这个函数会在x为NaN时返回true,或者使用isFinite()函数,在参数不是NaN、Infinity或-Infinity的时候返回true。

(4) 负零:与正零几乎一样。除了在作为除数时,1除以负零得到负无穷大,1除以正零得到正无穷大。

你可能感兴趣的:(JavaScript读书笔记(一) 数字)