引言

JavaScript不区分整数值和浮点数值,全部使用浮点数值表示。当一个数字直接出现在JavaScript程序中,我们称之为数字直接量(numeric litertal)。JavaScript支持多种格式的数字直接量。

整型直接量

在JavaScript程序中,用一个程序序列表示一个十进制整数。除了十进制的整型直接量,JavaScript同样能识别十六进制(以16为基数)值(以“0x”和“0X”为前缀)。

浮点型直接量

浮点型直接量可以含有小数点,它们采用的是传统的实数写法。一个实数由整数部分、小数点和小数部分组成。同时支持指数记数法表示浮点型直接量。

JavaScript中的算术运算

JavaScript程序是使用语言本身提供的算术运算符来进行数字运算的。这些运算符包括加法运算符(+)、减法运算符(-)、乘法运算符(*)、除法运算符(/)和求余(求整除后的余数)运算符(%)。JavaScrip中的算术运算在溢出(overflow)、下溢(underflow)或被零整除时不会报错。

溢出

当数字运算结果超过了JavaScript所能表示的数字上限(溢出),结果为一个特殊的无穷大(infinity)值,在JavaScript中以Infinity表示。同样,当负数的值超过了JavaScript所能表示的负数范围,结果为负无穷大,JavaScript中以-Infinity表示。无穷大值的行为特性和我们所期望的是一致的:基于它们的加、减、乘和除运算结果还是无穷大值(保留其正负号)。

下溢

下溢是当运算结果无限接近于零并比JavaScript能表示的最小值还小的时候发生的一种情形。这种情况下,JavaScript将会返回0。当一个负数发生下溢时,JavaScript返回一个特殊的值“负零”。这个值(负零)几乎和正常的完全一样,但是很少用到。

被零整除

被零整除在JavaScript并不报错:它只是简单的返回无穷大(Infinity)或负无穷大(-Infinity)。但是有一个例外,零除以零是没有意义的,这种整除运算结果也是一个非数字(not-a-number)值,用NaN表示。无穷大除以无穷大、给任意负数作开方运算或者算术运算符与不是数字或无法转换为数字的操作数一起使用时都将会返回NaN。

Infinity和NaN

JavaScript预定义了全局变量Infinity和NaN,用来表示正无穷大和非数字值。在ECMScript3中,这两个值是可读/写的,并可修改。ECMAScript5修正了这个错误,将它们定义为只读的。

特殊情况

  1. JavaScript中的非数字值都有一点特殊:它和任何值都不相等,包括自身。如判断变量x是否是NaN,应当使用x!=x来判断,当且仅当x为NaN的时候,表达式的结果才为true。
  2. 负零值同样有些特殊,它和正零值是相等的。这意味这两个值几乎一模一样的,除了作为除数之外:零被除得到正无穷大,负零被除得到负无穷大。

二进制浮点数和四舍五入错误

实数有无数个,但是JavaScript通过浮点数的形式只能表示其中有限的个数(确切地说是1843 7736 8744 5481 0627个)。也就是说,当在JavaScript中使用实数的时候,常常只是真实值的一个近似表示。

JavaScript数据类型之数字类型的更多相关文章

  1. javaScript中Number数字类型方法入门

    前言 Number和Math都属于JavaScript中的内置对象,Number数字类型作为基础数据类型,我们在开发过程中会经常用到,包括数字精度的格式化,还有字符串转换成数字等操作. Number数 ...

  2. javascript类型系统——Number数字类型

    × 目录 [1]定义 [2]整数 [3]浮点数[4]科学记数[5]数值精度[6]数值范围[7]特殊数值[8]转成数值[9]实例方法 前面的话 javascript只有一个数字类型,它在内部被表示为64 ...

  3. day05数据类型,数字类型,字符串类型,字符串的操作方法,列表类型的操作方法,可变类型与不可变类型

    复习 ''' 流程控制 1.顺序结构.分支结构.循环结构 2.if分支结构 if 条件: 代码块 elif 条件: 代码块 else: 代码块 # 可以被if转换为False:0 | '' | Non ...

  4. Python基础一数据类型之数字类型

    摘要: python基础一中提到了数据类型,这里主要讲解的是数字类型. 数字类型: 1,整型 2,长整型 3,浮点型 4,复数型 1,整型(int) 定义a = 1 通过type函数查看数据类型,整型 ...

  5. Python基础(3) - 数据类型:1数字类型

    Python数据类型 数据类型 是否容器 是否可变 存储方式 数字 否 否 直接 字符串 否 否 直接 列表 是 是 顺序 元组 是 否 顺序 字典 是 是 映射 数字类型 整  型:1,234,0, ...

  6. Python数据类型-2 数字类型

    数字类型 数字类型是不可变类型.所谓的不可变类型,指的是类型的值一旦有不同了,那么它就是一个全新的对象.数字1和2分别代表两个不同的对象,对变量重新赋值一个数字类型,会新建一个数字对象. 还是要强调一 ...

  7. Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之数字类型(number)

    Python 数字类型(number)用于存储数值.数据类型是不允许改变的,这就意味着如果改变number数据类型的值,将重新分配内存空间. 1.   一个简单的示例: # 以下实例在变量赋值时数字类 ...

  8. python数据类型值数字类型

    1.bin()函数是将十进制数转换成二进制数 2.oct()函数将十进制数转换成八进制数 3.hex()函数将十进制数转换成十六进制     数 十六进制表示:0-9 a b c d e f 4.数字 ...

  9. Python数据类型之数字类型

    整数 在Python中,整数可以执行 加(+)减(-)乘(*)除(/) 运算. 1 + 2 3 - 2 2 * 3 3 / 2 # 1.5 在控制台,Python直接返回运算结果. Python中也可 ...

随机推荐

  1. CoreJava(一)—— Java迭代语句

    本文介绍一些关于迭代语句的一些相关技巧以及Java8中的迭代语句的使用方法. public class TestBreak { public static void main(String[] arg ...

  2. lua的table元类

    Lua中提供的元表是用于帮助Lua数据变量完成某些非预定义功能的个性化行为,如两个table的相加.假设a和b都是table,通过元表可以定义如何计算表达式a+b.当Lua试图将两个table相加时, ...

  3. 第一次:lesson eighty seven。

    原文: A car crash. A:Is my car ready yet? B:I don't know sir,what's the number of your car? A:It's LFZ ...

  4. Notepad++ 配置 Sql PoorMan 插件

    作用:用来格式化 sql 命令语句 配置方法:  Notepad++ 与 PoorMan 插件要版本一致 64对64 32对32 Notepad++ 在 D:\Notepad++\plugins 目录 ...

  5. ABP框架 sql语句(转载)

    ABP.Core实现SQL语句仓储,支持EF.Core兼容的数据库  来源:https://blog.csdn.net/qq_28699537/article/details/80522680?tds ...

  6. Codeforces617E(莫队)

    E. XOR and Favorite Number time limit per test: 4 seconds memory limit per test: 256 megabytes input ...

  7. Socket编程(网络编程)

    网络通信的第一要素:IP地址 通过IP地址唯一的定位到互联网的主机 通过 IP+port(端口号) 来确定互联网的主机上的某个软件 InetAddress:位于java.net包下 getHostNa ...

  8. 一年过去了,25万月薪的AI工程师还存在吗?

    导读:2017 年的时候,AI 前线进行了一场有关人工智能领域薪资差异的专题策划,这篇名为<25 万年薪的你与 25 万月薪的他,猎头来谈你们之间的差别>的文章引起了读者们的热烈讨论.一年 ...

  9. iTools(pro)下载

    http://bbs.feng.com/forum.php?mod=viewthread&tid=10225990&page=1&extra=#pid157941878 htt ...

  10. Python 一键拉取Git分支源码自动解析并执行SQL语句

    基于Python实现自动拉取Git分支源码自动解析并执行SQL语句 by:授客 QQ:1033553122 1.代码用途 开发过程中,研发人员会提交SQL更新脚本到Git源码库,然后测试负责去拉取这些 ...