`
Lewiss
  • 浏览: 20475 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JavaScript 运算

阅读更多
0. Boolean 运算符
    注意,逻辑 NOT 运算返回的一定是 Boolean 类型的值,而逻辑 OR 和 逻辑 AND 运算则不一定。

逻辑 NOT 运算行为如下所示:
    如果运算数是对象,返回 false;
    如果运算数是数字 0,返回 true;
    如果运算数是数字 0 以外的任何数字,返回 false;
    如果运算数是 null,返回 true;
    如果运算数是 NaN,返回 true;
    如果运算数是 undefined,返回 true(JavaScript 高级程序设计中说发生错误?)。

逻辑 AND 运算的运算数可以是任何类型,不止是 Boolean 值。如果某个运算数不是原始的 Boolean 值,那么 AND 运算不一定返回 Boolean 值。其运算行为如下:
    如果一个运算数是对象,另一个是 Boolean 值,返回该对象;
    如果两个运算数是对象,返回第二个对象;
    如果某个运算数是 null,返回 null;
    如果某个运算数是 NaN,返回 NaN;
    如果某个运算数是 undefined,返回 undefined(JavaScript 高级程序设计中说发生错误?);

与逻辑 AND 运算相似,如果某个运算数不是 Boolean 值,逻辑 OR 运算不一定返回 Boolean 值,此时其运算行为如下:
    如果一个运算数是对象,另一个是 Boolean 值,返回该对象;
    如果两个运算数是对象,返回第一个对象;   
    如果某个运算数是 null,返回 null;
    如果某个运算数是 NaN,返回 NaN;
    如果某个运算数是 undefined,返回另外一个数(JavaScript 高级程序设计中说发生错误?);


1. 乘性运算包括乘法运算、除法运算和取模运算三种运算,这些运算方式与 Java 等语言中的运算方式相似,不过它们还具有一些自动类型转换功能。

2. 乘法运算行为规则
    如果运算数都是数字,执行常规乘法运算。如果结果太大或太小,那么生成的结果就是 Infinity 或 -Infinity;
    如果某个运算数是 NaN,结果为 NaN;
    Infinity 乘以 0,结果为 NaN;
    Infinity 乘以 0 以外的任何数字,结果为 Infinity 或 -Infinity,由第二个运算数的符号决定;
    Infinity 乘以 Infinity,结果为 Infinity

3. 除法运算行为规则
    如果运算数都是数字,执行常规除法运算。如果结果太大或太小,那么生成的结果就是 Infinity 或 -Infinity;
    如果某个运算数是 NaN,结果为 NaN;
    Infinity 被 Infinity 除,结果为 NaN;
    Infinity 被任何数字除(包括 0),结果为 Infinity;
    0 除以一个非无穷大的数字,结果为 Infinity(JavaScript 说是 NaN ?);
    Infinity 被 0 以外的任何数字除,结果为 Infinity 或 -Infinity,由第二个运算数的符号决定;
   
4. 取模运算行为规则
    如果运算数都是数字,执行常规的算术除法运算,返回除法运算的到得余数;
    如果被除数是 Infinity,或者除数是 0, 结果为 NaN;
    Infinity 被 Infinity 除,结果为 NaN;
    如果除数是无穷大的数,结果为被除数

5. 加性运算包括加法运算和减法运算。

6. 加法运算行为规则
    如果两个运算数都是数字,则执行常规加法运算;
    如果某个运算数是 NaN,结果为 NaN;
    Infinity 加 Infinity,结果为 Infinity;
    -Infinity 加 -Infinity,结果为 -Infinity;
    Infinity 加 -Infinity,结果为 NaN;
    +0 加 +0,结果为 +0;
    -0 加 +0,结果为 +0;
    -0 加 -0,结果为 -0;
    如果两个运算数都是字符串,把第二个字符串连接到第一个字符串上;
    如果只有一个运算数是字符串,把另一个运算数转换成字符串,结果是两个字符串连接成的字符串。

7. 减法运算行为规则
    如果两个运算数都是数字,则执行常规减法运算;
    如果某个运算数是 NaN,结果为 NaN;
    Infinity 减 Infinity,结果为 NaN;
    -Infinity 减 -Infinity,结果为 NaN;
    Infinity 减 -Infinity,结果为 Infinity;
    -Infinity 减 Infinity,结果为 -Infinity;
    +0 减 +0,结果为 +0;
    -0 减 +0,结果为 -0;
    +0 减 -0,结果为 +0;
    -0 减 -0,结果为 +0;
    如果某个运算数不是数字(不能解析为数字?),结果为 NaN。

8. 关系运算
    即执行两个数比较的运算,比较方式与算术比较方式相同,每个关系运算都返回一个 Boolean 值(与乘性运算、加性运算不同)
    如果两个运算数都是字符串,则按字符串顺序进行比较;
    如果一个运算数是数字而另一个是字符串, ECMAScript 尝试把字符串解析为数字再进行比较,如果解析返回结果是 NaN,那么最终比较结果为 false,任何包含 NaN 的关系运算都返回 false
   
9. 等性运算
    ECMAScript 有两种运算机制处理等性运算,其中等号和非等号用于处理原始值,全等号和非全等号用于处理对象。

10. 等号和非等号运算时可能的类型转换
     如果一个运算数是 Boolean 值,在检查相等性之前,把它转换成数字值。false 转换成 0, true 转换成 1;
    如果一个运算数是字符串,另一个是数字,尝试把字符串转换成数字;
    如果一个运算数是对象,另一个是字符串,尝试把对象转换成字符串;
    如果一个运算数是对象,另一个是数字,尝试把对象转换成数字;
    值 null 和 undefined 相等;
    不能把 null 和 undefined 转换成其它值;
    如果某个运算数是 NaN,等号运算返回 false,非等号返回 true(即使两个运算数都是 NaN,等号仍然返回 false,因为根据规则,NaN 不等于 NaN);
    如果两个运算数都是对象,那么比较的是它们的引用值,如果它们指向同一个对象,那么等号返回 true,否则返回false。示例:
    

11. 全等运算时不做类型转换的运算,只有在无需做类型转换两个运算数比较相等时返回 true,否则返回 false。

12. 条件运算,与 Java 运算方式相同。

13. 赋值运算,与 Java 运算方式相同。

14. 逗号运算,在一条语句中执行多个运算。如声明 var a = 1, b = 2, c = 3;
分享到:
评论

相关推荐

    JavaScript实现检验除法运算

    在JavaScript编程语言中,实现除法运算检验是一个重要的任务,特别是在进行数学计算或者验证用户输入时。这个过程涉及到了对浮点数处理、错误处理、以及条件判断等多个方面。下面我们将详细探讨如何在JavaScript中...

    javascript 运算数的求值顺序

    以JavaScript为例,对于一个表达式中的多个运算数,即使参与运算的变量被函数调用所修改,该变量在表达式求值时所采用的值仍然是它被求值之前的值。举个例子,如果有一个函数fun()修改变量a的值,并在修改之后返回一...

    Android创建UI的新思路:用javascript与Activity进行交互(实用1).zip

    大量复杂的JavaScript运算可能会影响应用的运行速度。此外,暴露给JavaScript的接口必须谨慎处理,避免安全漏洞,防止恶意代码注入。 在提供的源码中,我们可以看到一个实际的应用案例,它展示了如何使用JavaScript...

    jsFloatMath:JavaScript库,用于数学运算,包括十进制数字

    jsFloatMath JavaScript库,用于数学运算,包括十进制数字有两种方法, 1> addFloat(array)传递要在数组中相加的数字2>乘法Float(array)传递要在数组中相乘的数字建立新物件var floatJs = require('decimal-...

    使用HTML5、CSS3和JavaScript实现简易四则运算

    在本项目中,我们将探讨如何使用HTML5、CSS3和JavaScript技术来创建一个简单的四则运算计算器。这个计算器能够执行基本的加法、减法、乘法和除法操作,对于初学者来说是一个很好的实践项目,它能帮助理解前端开发的...

    计算器运算逻辑实现(带括号,求余,乘方,加减乘除),不使用eval函数-前端JavaScript 源码实现-括号匹配与初等运算

    在JavaScript中,括号用于改变运算顺序,表达式`a * (b + c)`会先计算括号内的`b + c`,然后将结果与`a`相乘。乘方运算(**)的优先级高于乘法和除法,而加法和减法的优先级相同,从左到右进行计算。求余运算(%)是...

    JavaScript 浮点 运算 函数

    此函数是我自己写的,虽然在网上可以搜到很多,不过我找到的都是在算法中存在基本的浮点数的运算,导致结果仍然是错误的。由于刚刚学写JS,所以可能考虑不够周全,望大家批评指正。 代码中加了四舍五入函数,是网上...

    javascript float运算

    javascript float运算会有误差,可以用此脚本中的函数进行修补。

    JavaScript实现算术运算算子演示系统

    这个示例中,当用户点击“加法”按钮,JavaScript会获取两个输入框的值,进行加法运算,并将结果显示在页面上。 总的来说,“JavaScript实现算术运算算子演示系统”是一个集成了JavaScript、HTML5和CSS3技术的项目...

    使用JS+HTML写的计算器

    6. **JavaScript运算逻辑**:计算器的核心部分是计算逻辑,这可能涉及到基本的数学运算(加、减、乘、除)、优先级处理、括号运算等。JavaScript提供了`Math`对象来支持这些运算。 7. **页面动态更新**:通过...

    2186113564_聂永欣_电气810_实验51

    4. JavaScript运算与逻辑判断:在实验二中,`btnClick()`函数检查学号输入的长度,使用`if...else`进行条件判断。在实验三中,`maxmin()`函数比较两个数的大小并设置最大值和最小值。 5. 事件监听:`onclick`属性...

    javascript经典特效---对数运算.rar

    在JavaScript编程中,对数运算是一项基础且重要的数学操作,尤其在处理图形、科学计算以及数据分析等场景中不可或缺。对数运算与指数运算互为逆运算,它可以帮助我们解决复杂问题,例如简化计算、理解数据的增长模式...

    用javascript做简单计算器

    JavaScript 可以用来实现计算器的主要逻辑,包括数据处理、运算逻辑和结果显示等。 实现计算器的思路 要实现一个简单的计算器,我们需要考虑以下几个方面: 1. 数据输入:用户需要输入两个数字和一个运算符号。 2...

    JavaScript中的数学运算介绍.docx

    JavaScript中的数学运算主要涵盖基本算术运算和使用Math对象的高级计算。JavaScript支持常见的加法(+), 减法(-), 乘法(*), 除法(/)以及取模(%)运算符。此外,它还提供了处理特殊计算结果的能力,如正负Infinity和NaN...

    JavaScript\JavaScript教程

    JavaScript的基础语法包括变量声明(var、let、const)、数据类型(number、string、boolean、null、undefined、object、symbol、bigint)、运算符(算术、比较、逻辑、位运算、三元运算)、流程控制(if...else、...

    四则运算自动计算结果

    本资源展示了如何使用JavaScript实现四则运算自动计算结果的功能。该功能可以在用户输入数字时自动计算结果,并将结果显示在文本框中。如果用户输入的值为非数字,则清空文本框。 JavaScript事件 在本资源中,我们...

    【JavaScript源代码】JavaScript中极易出错的操作符运算总结.docx

    JavaScript中的操作符运算在编程实践中经常遇到,但如果不熟悉它们的工作原理,很容易导致错误。本文主要探讨了JavaScript中几个易出错的操作符类别,包括算术运算符、比较运算符、逻辑运算符以及赋值和一元运算符的...

Global site tag (gtag.js) - Google Analytics