美文网首页
3.5.5 指数操作符、3.5.6 加性操作符

3.5.5 指数操作符、3.5.6 加性操作符

作者: Wuthier | 来源:发表于2021-03-31 11:52 被阅读0次
3.5.5 指数操作符

ECMAScript 7新增了指数操作符, Math.pow() 现在有了自己的操作符 ** ,结果是一样的:

console.log(Math.pow(3, 2); // 9
console.log(3 ** 2); // 9

console.log(Math.pow(16, 0.5); // 4
console.log(16** 0.5); // 4

指数操作符也有自己的指数赋值操作符 **= ,该操作符执行指数运算和结果的赋值操作:

let squared = 3;
squared **= 2;
console.log(squared); // 9

let sqrt = 16;
sqrt **= 0.5;
console.log(sqrt); // 4
3.5.6 加性操作符

加性操作符,即加法和减法操作符,一般都是编程语言中最简单的操作符。

不过,在 ECMAScript中,这两个操作符拥有一些特殊的行为。与乘性操作符类似,加性操作符在后台会发生不同数据类型的转换。只不过对这两个操作符来说,转换规则不是那么直观。

  1. 加法操作符( + )

    用于求两个数的和。

    如果两个操作数都是数值,加法操作符执行加法运算并根据如下规则返回结果:

    • 如果有任一操作数是 NaN ,则返回 NaN ;
    • 如果是 Infinity 加 Infinity ,则返回 Infinity ;
    • 如果是 -Infinity 加 -Infinity ,则返回 -Infinity ;
    • 如果是 Infinity 加 -Infinity ,则返回 NaN ;
    • 如果是 +0 加 +0 ,则返回 +0 ;
    • 如果是 -0 加 +0 ,则返回 +0 ;
    • 如果是 -0 加 -0 ,则返回 -0 。

    如果有一个操作数是字符串,则要应用如下规则:

    • 如果两个操作数都是字符串,则将第二个字符串拼接到第一个字符串后面;
    • 如果只有一个操作数是字符串,则将另一个操作数转换为字符串,再将两个字符串拼接在一起。

    如果有任一操作数是对象、数值或布尔值,则调用它们的 toString() 方法以获取字符串,然后再应用前面的关于字符串的规则。对于 undefined 和 null ,则调用 String() 函数,分别获取"undefined" 和 "null" 。

  2. 减法操作符( - )

    减法操作符也有一组规则用于处理 ECMAScript 中不同类型之间的转换:

    • 如果两个操作数都是数值,则执行数学减法运算并返回结果。
    • 如果有任一操作数是 NaN ,则返回 NaN 。
    • 如果是 Infinity 减 Infinity ,则返回 NaN 。
    • 如果是 -Infinity 减 -Infinity ,则返回 NaN 。
    • 如果是 Infinity 减 -Infinity ,则返回 Infinity 。
    • 如果是 -Infinity 减 Infinity ,则返回 -Infinity 。
    • 如果是 +0 减 +0 ,则返回 +0 。
    • 如果是 +0 减 -0 ,则返回 -0 。
    • 如果是 -0 减 -0 ,则返回 +0 。
    • 如果有任一操作数是字符串、布尔值、 null 或 undefined ,则先在后台使用 Number() 将其转换为数值,然后再根据前面的规则执行数学运算。如果转换结果是 NaN ,则减法计算的结果是NaN 。
    • 如果有任一操作数是对象,则调用其 valueOf() 方法取得表示它的数值。如果该值是 NaN ,则减法计算的结果是 NaN 。如果对象没有 valueOf() 方法,则调用其 toString() 方法,然后再将得到的字符串转换为数值。
    let result1 = 5 - true; // true 被转换为 1,所以结果是 4
    let result2 = NaN - 1; // NaN
    let result3 = 5 - 3; // 2
    let result4 = 5 - ""; // ""被转换为 0,所以结果是 5
    let result5 = 5 - "2"; // "2"被转换为 2,所以结果是 3
    let result6 = 5 - null; // null 被转换为 0,所以结果是 5
    

学习下一篇文章

相关文章

  • 3.5.5 指数操作符、3.5.6 加性操作符

    3.5.5 指数操作符 ECMAScript 7新增了指数操作符, Math.pow() 现在有了自己的操作符 *...

  • 3.5.5 加性操作符

    加法和减法这两个加性操作符应该说是编程语言中最简单的算术操作符了。但是再ECMAScript中,这两个操作符都有一...

  • JavaScript操作符

    原文 博客原文 大纲 前言1、一元操作符2、位操作符3、布尔操作符(逻辑操作符)4、乘性操作符5、加性操作符6、关...

  • JavaScript的表达式与操作符

    我们接下来学习JavaScript操作符(运算符): 一、一元操作符: 二、加性操作符: 三、乘性操作符: 四、关...

  • 3.5.6 关系操作符

    小于(<)、大于(>)、小于等于(<=)和大于等于(>=)这几个关系操作符用于对两个值进行比较,比较的规则和数学课...

  • rxjava2 学习笔记

    特点 链式调用 线程切换 操作符 创建操作符 转换操作符 过滤操作符 组合操作符 错误处理操作符 辅助性操作符 条...

  • 部分操作符的说明

    一元操作符只能够操作一个值的操作叫做一元操作符。 ① 和递减操作符 ② 一元加和减操作符 一元加操作符对结果不会有...

  • 1、基本概念(3)(JS高级笔记)

    4.5 加性操作符 4.5.1 加法 如果两个操作符都是数值,执行常规的加法计算,然后根据下列规则返回结果: 如果...

  • JS中简单的运算符

    一、加性操作符; var a = 1 + 2 ;console.log(a) ; // 3这是普...

  • 【JS基础】(四)JavaScript常用操作符(运算符)

    (一)算术操作符 + 操作符 (1)一元加操作符(+) 放在数值前面,对数值不会产生任何影响; 对非数值应用一元加...

网友评论

      本文标题:3.5.5 指数操作符、3.5.6 加性操作符

      本文链接:https://www.haomeiwen.com/subject/rgzvhltx.html