所有用单引号、双引号、反引号(模板字符串)包起来的都是字符串
(12).toString() // '12'
(NaN).toString() // 'NaN'
(true).toString() // 'true'
普通对象.toString() // "[object Object]"
Object.prototype.toString方法不是转换为字符串的,而是用来检测数据类型的
null 和 undefined是禁止直接使用toString方法的,直接使用会报错
字符串拼接
四则运算法则中,除加法之外,其余都是数学计算,只有加法可能存在字符串拼接(一旦遇到字符串,则不是数学运算,而是字符串拼接)
"10" + 10 // 1010
"10" - 10 // 0 Number转换
"10px" - 10 // NaN Number转换
let a = 10 + null + true + [ ] + undefined + "22" + null + [ ] + 10 + false;
console.log(a) // '11undefined22null10false'