JavaScript权威指南—从笨鸟到菜鸟(六) 数字
2016-08-16 11:06
169 查看
JavaScript不区分整数值和浮点类型。JavaScript中的所有数字均用浮点数值表示。能够表示的整数范围是从-2^53~2^53,包含边界值。
当一个数字直接出现在JavaScript程序中,我们称之为数字直接量(numeric literral)
一 整型直接量
在JavaScript中,用一个数字序列表示一个十进制整数。例:11320300
除了十进制的整形直接量,JavaScript同样能识别十六进制值。所谓十六进制的直接量是指以“0x”或“0X”为前缀,其后跟随十六进制数串的直接量。十六进制数值是0~9之间的数字和a(A)~f(F)之间的字母构成,a~f的字母对应的表示数字10~15。例:0xff //15*16+15=255(十进制)
尽管ECMAScript标准不支持八进制直接量,但JavaScript的某些实现可以允许采用八进制形式表示整数。八进制直接量以数字0开始,其后跟随一个有0~7之间的数字组成的序列。例:0377 //3*64+7*8+7=255(十进制)
某些JavaScript的实现支持八进制直接量,有些不支持。
二 浮点型直接量
浮点型直接量可以包含小数点,它们采用的是传统的实数写法。
此外,还可以是用指数计数法表示浮点型直接量,即在实数后跟字母e或E。
通式:[digits][.digits][(e|E)[(+|-)]digits ] 例:6.02e23 //6.02*10^23
三 JavaScript中的算术运算
JavaScript程序是使用语言本身提供的算术运算符来进行数字运算的。包括:+ - * / %
除了基本的运算符外,JavaScript还支持更加复杂的算术运算,通过作为Math对象的属性定义的函数和常量来实现。
JavaScript中的算数运算在溢出(overflow)、下溢(underflow)或被零整除时不会报错。当数字运算结果超过了JavaScript所能表示的数字上限,作为一个无穷大
(infinity)值,在JavaScript中以infinity表示,基于它们的加、减、乘、除运算结果还是无穷大(或负无穷大)
下溢(underflow)是当结果无限接近于零并比JavaScript能表示的最小值还小的时候发生的一种情形。这种情形下,JavaScript将会返回零
被零整除在JavaScript并不报错,他只是简单地返回无穷大,但是,零除以零,无穷大除以无穷大,给任意负数做开方运算或者算术运算符与不是数字或无法转换为数字的
操作数一起使用时都将返回NaN。
四 二进制浮点数和四舍五入错误
JavaScript通过浮点数的形式只能表示实数中有限的个数,也就是说,当在JavaScript中使用实数的时候,常常只是一个真实值得近似表示。
JavaScript采用IEEE-754浮点数表示法,是二级制表示法。
二进制表示法并不能精确的表示类似0.1这样简单的数字。
例 : var x =.3-.2;
var y =.2-.1;
x==y //结果是false
五 日期和时间
JavaScript语言核心包括Date()构造函数,用来创建表示日期和时间的函数
当一个数字直接出现在JavaScript程序中,我们称之为数字直接量(numeric literral)
一 整型直接量
在JavaScript中,用一个数字序列表示一个十进制整数。例:11320300
除了十进制的整形直接量,JavaScript同样能识别十六进制值。所谓十六进制的直接量是指以“0x”或“0X”为前缀,其后跟随十六进制数串的直接量。十六进制数值是0~9之间的数字和a(A)~f(F)之间的字母构成,a~f的字母对应的表示数字10~15。例:0xff //15*16+15=255(十进制)
尽管ECMAScript标准不支持八进制直接量,但JavaScript的某些实现可以允许采用八进制形式表示整数。八进制直接量以数字0开始,其后跟随一个有0~7之间的数字组成的序列。例:0377 //3*64+7*8+7=255(十进制)
某些JavaScript的实现支持八进制直接量,有些不支持。
二 浮点型直接量
浮点型直接量可以包含小数点,它们采用的是传统的实数写法。
此外,还可以是用指数计数法表示浮点型直接量,即在实数后跟字母e或E。
通式:[digits][.digits][(e|E)[(+|-)]digits ] 例:6.02e23 //6.02*10^23
三 JavaScript中的算术运算
JavaScript程序是使用语言本身提供的算术运算符来进行数字运算的。包括:+ - * / %
除了基本的运算符外,JavaScript还支持更加复杂的算术运算,通过作为Math对象的属性定义的函数和常量来实现。
JavaScript中的算数运算在溢出(overflow)、下溢(underflow)或被零整除时不会报错。当数字运算结果超过了JavaScript所能表示的数字上限,作为一个无穷大
(infinity)值,在JavaScript中以infinity表示,基于它们的加、减、乘、除运算结果还是无穷大(或负无穷大)
下溢(underflow)是当结果无限接近于零并比JavaScript能表示的最小值还小的时候发生的一种情形。这种情形下,JavaScript将会返回零
被零整除在JavaScript并不报错,他只是简单地返回无穷大,但是,零除以零,无穷大除以无穷大,给任意负数做开方运算或者算术运算符与不是数字或无法转换为数字的
操作数一起使用时都将返回NaN。
四 二进制浮点数和四舍五入错误
JavaScript通过浮点数的形式只能表示实数中有限的个数,也就是说,当在JavaScript中使用实数的时候,常常只是一个真实值得近似表示。
JavaScript采用IEEE-754浮点数表示法,是二级制表示法。
二进制表示法并不能精确的表示类似0.1这样简单的数字。
例 : var x =.3-.2;
var y =.2-.1;
x==y //结果是false
五 日期和时间
JavaScript语言核心包括Date()构造函数,用来创建表示日期和时间的函数
相关文章推荐
- Java程序员从笨鸟到菜鸟之(四)java开发常用类(包装,数字处理集合等)(上)
- JavaScript权威指南—从笨鸟到菜鸟(五) 类型、值、变量简介
- Java程序员从笨鸟到菜鸟之(四)java开发常用类(包装,数字处理集合等)(上)
- Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)
- Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)
- JavaScript权威指南——从笨鸟到菜鸟(一) JavaScript概述
- Java程序员从笨鸟到菜鸟之(四)java开发常用类(包装,数字处理集合等)(上)
- Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)
- Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)
- Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)
- JavaScript权威指南—从笨鸟到菜鸟(三) 语法结构(中)—标识符和保留字
- Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)
- Java程序员从笨鸟到菜鸟之(四)java开发常用类(包装,数字处理集合等)(上)
- Java程序员从笨鸟到菜鸟之(四)java开发常用类(包装,数字处理集合等)(上)
- Java程序员从笨鸟到菜鸟之(四)java开发常用类(包装,数字处理集合等)(上)
- Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)
- Java程序员从笨鸟到菜鸟之(四)java开发常用类(包装,数字处理集合等)(上)
- Java程序员从笨鸟到菜鸟(一)验证码实现,随机生成数字和字母、点击刷新、加入干扰线等样式
- Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)
- Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)