javascript基础学习系列二十二:指数操作符

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

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

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

 console.log(Math.pow(16, 0.5); // 4
console.log(16** 0.5);         // 4
 console.log(3 ** 2);           // 9
 let squared = 3;
squared **= 2;
console.log(squared); // 9

1. 加性操作符:

加性操作符,即加法和减法操作符,一般都是编程语言中最简单的操作符。不过,在 ECMAScript 中,这两个操作符拥有一些特殊的行为。与乘性操作符类似,加性操作符在后台会发生不同数据类型的 转换。

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

  • 如果有任一操作数是 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”。
let result1 = 5 + 5;
console.log(result1);
let result2 = 5 + "5";
console.log(result2);
// 两个数值
// 10
// 一个数值和一个字符串 // "55"

加法操作符的两种运算模式。正常情况下,5 + 5 等于 10(数值),如前两行代码 所示。但是,如果将一个操作数改为字符串,比如"5",则相加的结果就变成了"55"(原始字符串值), 因为第一个操作数也会被转换为字符串。

let num1 = 5;
    let num2 = 10;
    let message = "The sum of 5 and 10 is " + num1 + num2;
    console.log(message);  // "The sum of 5 and 10 is 510"

猜你喜欢

转载自blog.csdn.net/wanmeijuhao/article/details/135450047