你真的会用 + 运算吗?

212 阅读2分钟

内容仅供参考,若有错误,还望各位大佬指出

这篇文章讲诉的是 JavaScript中 + 运算符的使用

运算逻辑

image.png

以下有具体例子,若有错误,请您指正!

一、 普通数据类型之间的 + 运算符的特殊使用

  1. NaN 与 字符串和数字的 + 运算
console.log(NaN + 1)  //  返回值为  NaN
console.log(NaN + '1')  // 返回值为 'NaN1'
  1. null 与 字符串和数字的 + 运算
console.log(null + 1)  //  返回值为 数字 1
console.log(null + '1')  // 返回值为 字符串 'null1'
  1. undefined 与 字符串和数字的 + 运算
console.log(undefined + 1)  //  返回值为 NaN
console.log(undefined + '1')  // 返回值为 字符串 'undefined1'
  1. Boolean 与 字符串和数字的 +运算

布尔值在与数值做 + 法运算时 true的值为 1; false 的值为 0

console.log(true + 1)  //  返回值为 数字 2
console.log(true + '1')  // 返回值为 字符串 'true1'
console.log(false + 1)  //  返回值为 数字 1
console.log(false + '1')  // 返回值为 字符串 'false1'

二、 普通数据类型和引用数据类型之间的 + 运算符的特殊使用

  1. 数组 与 普通数据类型的 + 运算
const arr = [1,2]
console.log(arr + 1)  //  返回值为 字符串 '1,21'
console.log(arr + '1')  // 返回值为 字符串 '1,21'
console.log(arr + null)  // 返回值为 字符串 '1,2null'
console.log(arr + true)  // 返回值为 字符串 '1,2true'
console.log(arr + false)  // 返回值为 字符串 '1,2false'
console.log(arr + undefined)  // 返回值为 字符串 '1,2undefined'
  1. 对象 与 普通数据类型的 + 运算
const obj = {name: '1' , num: 2}
console.log(obj + 1)  //  返回值为 字符串 '[object Object]1'
console.log(obj + '1')  // 返回值为 字符串 '[object Object]1'
console.log(obj + null)  // 返回值为 字符串 '[object Object]null'
console.log(obj + true)  // 返回值为 字符串 '[object Object]true'
console.log(obj + false)  // 返回值为 字符串 '[object Object]false'
console.log(arobjr + undefined)  // 返回值为 字符串 '[object Object]undefined'

// 若是调用里面的属性就是和普通数据类型类似
// 例如:
console.log(obj.name + 1)  //  返回值为 字符串 '11'
console.log(obj.name + '1')  // 返回值为 字符串 '11'
// ....   一次类推即可
  1. 数组 与 对象的 + 运算
const arr = [1,2]
const obj = {name: '1' , num: 2}
console.log(arr + obj)  //  返回值为 字符串 '1,2[object Object]'
console.log(arr[1] + obj.name)  // 返回值为 字符串 '21'
console.log(arr[1] + obj.num)  // 返回值为 数字 2
.......