JavaScript 学习笔记 语法基础——操作符之 + 运算符

前言

JavaScript 的加法和级联(concatenation)都使用 + 运算符。

语法

加法操作符(+)针对特殊值也有一些特殊的行为:

  • 如果有任一操作数是NaN,则返回NaN。
  • 如果是Infinity加Infinity,则返回Infinity。
  • 如果是-Infinity加-Infinity,则返回-Infinity。
  • 如果Infinity加-Infinity,则返回NaN。
  • +0加+0,则返回+0。
  • -0加+0,则返回+0。
  • -0加-0,则返回-0。
  • 如果有一个操作数是字符串
    (1)如果两个操作数都是字符串,则将第二个字符串拼接到第一个字符串后面。
    (2)如果只有一个操作数是字符串,则将另一个操作数转换成为字符串,再将两个字符串拼接在一起。
  • 如果有任一操作数是对象、数值或布尔值,则调用他们的toSting()方法以获取字符串,然后在应用前面的关于字符串的规则。对于undefined和null,则调用String()函数,分别获取"undefined"和"null"。
let num1 = 5;
let num2 = 10;
let message = "The sum of 5 and 10 is " + num1 + num2;   // "The sum of 5 and 10 is 510"
let message = "The sum of 5 and 10 is " + (num1 + num2); // "The sum of 5 and 10 is 15" 

解惑

如何判断加法还是级联?
对 两个数字 用加法运算。对 两个字符串 或者 一个字符串加一个数字 用级联运算。

加法和级联是怎么处理数据的?
在所有数字运算中,JavaScript 会尝试将各种数据类型转换为数字:Number()
在字符串级联运算中,JavaScript 会尝试将各种数据类型转换为字符串:toString() 或者 String()(对于 undefined 和 null)

上一篇:HttpServletResponse应用(三)sendRedirect()实现请求重定向


下一篇:转发和重定向的区别