是的,javascript 中的 - 运算符会触发类型转换。当操作数不是数字时,引擎会尝试调用 tonumber 抽象操作将它们转换为数值类型,如果转换失败则返回 nan。

- 运算符如何处理字符串与数字的混合运算?
它会忽略字符串内容并尝试将其转为数字,若无法解析则为 NaN。例如 "5" - 1 结果为 4,而 "abc" - 1 结果为 NaN。

console.log("5" - 1); // 4
console.log("abc" - 1); // NaN
console.log(true - 1); // 0
console.log(null - 1); // -1
- 运算符对对象和数组的处理逻辑是什么?
它先调用对象的 valueOf() 或 toString() 获取原始值,再转为数字。数组通常转为逗号分隔的字符串,再转数字得到 NaN。
立即学习“Java免费学习笔记(深入)”;

console.log([1, 2] - 1); // NaN
console.log({} - 1); // NaN
console.log(new Date() - 0); // 时间戳使用 -0 作为输入时的具体结果是什么?
当使用 -0 参与运算时,它会被视为数字 0,但保留符号位。例如 -0 - 1 结果为 -1,而 0 - (-0) 结果为 0(但在某些浮点比较中可能区分)。


















