内容仅供参考,若有错误,还望各位大佬指出
这篇文章讲诉的是 JavaScript中 + 运算符的使用
运算逻辑
以下有具体例子,若有错误,请您指正!
一、 普通数据类型之间的 + 运算符的特殊使用
- NaN 与 字符串和数字的 + 运算
console.log(NaN + 1) // 返回值为 NaN
console.log(NaN + '1') // 返回值为 'NaN1'
- null 与 字符串和数字的 + 运算
console.log(null + 1) // 返回值为 数字 1
console.log(null + '1') // 返回值为 字符串 'null1'
- undefined 与 字符串和数字的 + 运算
console.log(undefined + 1) // 返回值为 NaN
console.log(undefined + '1') // 返回值为 字符串 'undefined1'
- 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'
二、 普通数据类型和引用数据类型之间的 + 运算符的特殊使用
- 数组 与 普通数据类型的 + 运算
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'
- 对象 与 普通数据类型的 + 运算
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'
// .... 一次类推即可
- 数组 与 对象的 + 运算
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
.......