javascript中提供了几种算术运算符,+(加)  -(减)  *(乘)  /(除)  %(余),常规用法与数学上的一致;  但还规定一些特殊规则:

  注:JavaScript中保存数值的方式,可以保存正零(+0)和负零(-0);正零与负零被认为相等。

乘性操作符(*):

  如果结果太大或太小,那么生成的结果是 Infinity 或 -Infinity。

  如果某个运算数是 NaN,结果为 NaN。

  Infinity 乘以 0,结果为 NaN

  Infinity 乘以 0 以外的任何数字,结果为 Infinity 或 -Infinity。

  Infinity 乘以 Infinity,结果为 Infinity。

  若果一个数不是数值,则在后台调用Number()将其转换为数值,然后再应用上面规则;

除性操作符(/):

  如果结果太大或太小,那么生成的结果是 Infinity 或 -Infinity。

  如果某个运算数是 NaN,结果为 NaN。

  Infinity 被 Infinity 除,结果为 NaN。

  Infinity 被任何数字除,结果为 Infinity。

  0 除一个任何非无穷大的数字,结果为 NaN。

  Infinity 被 0 以外的任何数字除,结果为 Infinity 或 -Infinity

  若果一个数不是数值,则在后台调用Number()将其转换为数值,然后再应用上面规则;

取模运算符(%):

  如果被除数是 Infinity,或除数是 0,结果为 NaN。

  Infinity 被 Infinity 除,结果为 NaN。

  如果除数是无穷大的数,结果为被除数。

  如果被除数为 0,结果为 0。

加法运算符(+):

  某个运算数是 NaN,那么结果为 NaN。

  -Infinity 加 -Infinity,结果为 -Infinity。

  Infinity 加 -Infinity,结果为 NaN。

  +0 加 +0,结果为 +0。

  -0 加 +0,结果为 +0。

  -0 加 -0,结果为 -0。

  如果某个运算数是字符串,采用下列规则:

  如果两个运算数都是字符串,把第二个字符串连接到第一个上。

  如果只有一个运算数是字符串,把另一个运算数转换成字符串,结果是两个字符串连接成的字符串

减法操作符(-):

  某个运算数是 NaN,那么结果为 NaN。

  Infinity 减 Infinity,结果为 NaN。

  -Infinity 减 -Infinity,结果为 NaN。

  Infinity 减 -Infinity,结果为 Infinity。

  -Infinity 减 Infinity,结果为 -Infinity。

  +0 减 +0,结果为 +0。

  -0 减 -0,结果为 -0。

  +0 减 -0,结果为 +0。

  某个运算符不是数字,那么结果为 NaN。

  

javascript中算术运算符规则的更多相关文章

  1. JavaScript中的运算符种类及其规则介绍

    JavaScript中的运算符有很多,主要分为算术运算符,等同全同运算符,比较运算符,字符串运算符,逻辑运算符,赋值运算符等.这些运算符都有一些属于自己的运算规则,下面就为大家介绍一下JavaScri ...

  2. (转)JavaScript中的运算符优先级

    JavaScript中的运算符优先级是一套规则.该规则在计算表达式时控制运算符执行的顺序.具有较高优先级的运算符先于较低优先级的运算符执行.例如,乘法的执行先于加法. 下表按从最高到最低的优先级列出J ...

  3. JavaScript中“typeof”运算符与“instanceof”运算符的差异

    在JavaScript中,运算符“typeof”和“instanceof”都可以用来判断数据的类型,那么这两个运算符有什么不同之处呢? 差异一:使用方式不同. 最明显的差异就是这两个运算符的使用方式了 ...

  4. JavaScript中逗号运算符

    JavaScript中逗号运算符(,)是顺序执行两个表达式.使用方法: expression1, expression2 其中expression1是任何表达式. expression2是任何表达式. ...

  5. JavaScript学习系列7 -- JavaScript中的运算符

    今天,我们来说一说JavaScript中的运算符,首先我们来讲一讲 一元运算符 JavaScript中的一元运算符有以下几种 1. delete delete 运算符主要用于删除对以前定义的对象属性或 ...

  6. 前端知识体系:JavaScript基础-原型和原型链-理解原型设计模式以及 JavaScript中的原型规则

    理解原型设计模式以及 JavaScript中的原型规则(原文地址) 1.原型对象:我们创建的每一个函数(JavaScript中函数也是一个对象)都有一个原型属性 prototype,原型属性实质上是一 ...

  7. JavaScript中字符串运算符的使用

    字符串运算符是用于两个字符串型数据之间的运算符,它的作用是将两个字符串连接起来.在JavaScript中,可以使用+和+=运算符对两个字符串进行连接运算.其中,+运算符用于连接两个字符串,而+=运算符 ...

  8. JavaScript中的运算符和语句

    一.JavaScript的运算符 a.基本的算术运算符(+.-.*./.%) -.*./.%运算符会在必要的时候将操作数转换为数字,无法转换成数字的操作数将会转换成NaN,相应的运算结果也是NaN. ...

  9. 深入理解JavaScript中的==运算符

    原文章地址 在详细介绍图1中的每个部分前,我们来复习一下JS中关于类型的知识: JS中的值有两种类型:基本类型.对象类型. 基本类型包括:Undefined.Null.Boolean.Number和S ...

随机推荐

  1. 合并多个Redis dump.rdb 到一个rdb的多个database

    公司的服务器上运行了多个redis,现在希望合并到一个redis,用上redis的多database特性. 在网上找了一圈发现没有比较好的工具可以进行这个处理. 看过一个redis-dump号称可以导 ...

  2. HttpHelps类,用来实现Http访问,Post或者Get方式的,直接访问,带Cookie的,带证书的等方式,可以设置代理

    原文地址:http://blog.csdn.net/cdefg198/article/details/8315438 万能框架:http://www.sufeinet.com/forum.php?mo ...

  3. 如何将你牛逼的iOS代码分享到CocoaPod(转)

    为了让读者一目了然,现在就从新建工程到最后提交podspec,简单粗暴的讲一通.Cocoapods不用解释太多,一句话...它是目前iOS开发中最广为使用的第三方库依赖管理工具. 下面开始讲创建pod ...

  4. MySQL 查询结果以百分比显示

    找了一些资料,然后我是用到了MySQL字符串处理中的两个函数concat()和left()1.[CONCAT(str1,str2,...)  返回来自于参数连结的字符串.如果任何参数是 NULL, 返 ...

  5. MySQL的group_concat与Oracle的wm_concat使用区别

    Oracle的wm_concat在拼接时,如果字段内容为空结果为空,null类型相加不受影响. MySQL的group_concat拼接时,如果不设置Separator,字段内容为空时不会得到空的结果 ...

  6. C#之多线程编程

    一.进程与线程 进程(Process)是对一段静态指令序列(程序)的动态执行过程,是系统进行资源分配和调度的一个基本单位.与进程相关的信息包括进程的用户标识,正在执行的已经编译好的程序,进程程序和数据 ...

  7. 第四课 Grid Control实验 GC Agent安装(第一台机器部署) 及卸载

    3.GC Agent安装(第一台机器部署) 安装Agent 拷贝agent,现在ocm2机器上查找agent.linux  查找文件的方法: find ./ -name agent*linux 把ag ...

  8. C#委托,事件,匿名委托

    作为一个初学者,写下来是当做自己的学习笔记,希望在以后遇到问题的时候能够快速的找到方法 如果能帮助跟我一样的新人是更好不过的了        如果有什么不正确或者可以改进的地方也希望大家能够指出来  ...

  9. java enum的用法

    原始的常量定义: public static fianl MON=“Mon”; public static final TUE="Tue"; 语法(定义) 创建枚举类型要使用 en ...

  10. php获取文章内容中的全部图片数组

    <?php $pattern="/<img.*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/&q ...