3.1

3.1

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

  JS采用IEEE的64位浮点格式表示数字。

  整数范围:-2^53--2^53。

3.1.1

  ECMAScriptz不支持八进制直接量,但JS的某些实现可以允许采用八进制,以0开始,但是最好不用八进制

3.1.2

  算数运算符: + - * / %

  JS支持更加复杂的算数运算符,通常作为Math对象的属性定义的函数和常量来实现。

  如:Math.pow(2,53), Math.exp(3)

  JS中算数运算在溢出(overflow),下溢(underflow)或者被0整除时,不会报错。

  当溢出时,结果为无穷大(+-Infinity)

  当下溢时,结果为0

  当被0整除时,简单的返回无穷大

  0/0, Infinity/Infinity, 负数开方或者算数运算符与无法转换为数字的操作数一起作用时,返回NaN(not a number)。

  JS预定义全局变量:Infinity和NaN,只读。

  NaN和任何值都不相等,包括他本身。

  无法用 X ==  NaN 来判断X是否为NaN,应该采用 X != X 来判断。isNaN()作用与此类似。

  isFinite()在参数不是NaN,Infinity或者-Infinity时,返回true。

  负0与正0值是相等的,只有作为除数时产生不同的Infinity(+-)。

3.1.3

  JS中使用实数时,常常只是真实值的一个近似表示。

  JS中数字具有足够的精度,但并不精确。

  如:var x = .3 - .2;

    var y = .4 - .3;

    x == y    => flase

  任何使用二进制浮点数的编程语言都有这个问题。

  

  

原文地址:https://www.cnblogs.com/zawjdbb/p/6208857.html