You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中Number()与一元+运算符除性能和意图外是否有实际差异?

JavaScript中Number()构造函数与一元+运算符的技术差异分析

经过多方检索(谷歌搜索、社区帖子查阅)及测试验证,除性能表现和代码表达意图外,JavaScript中的Number()构造函数与一元+运算符在类型转换的实际结果上不存在技术差异,所有常见转换场景下二者输出完全一致。

以下是覆盖多种场景的测试代码及结果:

console.log("一元+运算符 vs Number构造函数");

// 数字字符串转换
let str1 = "42";
console.log("一元+: ", +str1);         // 输出: 42
console.log("Number: ", Number(str1));   // 输出: 42

// 非数字字符串转换
let str2 = "abc";
console.log("一元+: ", +str2);         // 输出: NaN
console.log("Number: ", Number(str2));   // 输出: NaN

// 处理空字符串
let str3 = "";
console.log("一元+: ", +str3);         // 输出: 0
console.log("Number: ", Number(str3));   // 输出: 0

// 处理含空白字符的字符串
let str4 = "  ";
console.log("一元+: ", +str4);         // 输出: 0
console.log("Number: ", Number(str4));   // 输出: 0

// 处理布尔值字符串
let str5 = "true";
console.log("一元+: ", +str5);         // 输出: NaN
console.log("Number: ", Number(str5));   // 输出: NaN

// 处理特殊数字字符串
console.log("一元+ Infinity: ", +"Infinity");       // 输出: Infinity
console.log("一元+ -Infinity: ", +"-Infinity");       // 输出: -Infinity
console.log("一元+ NaN: ", +"NaN");                    // 输出: NaN

console.log("Number Infinity: ", Number("Infinity"));  // 输出: Infinity
console.log("Number -Infinity: ", Number("-Infinity")); // 输出: -Infinity
console.log("Number NaN: ", Number("NaN"));            // 输出: NaN

// 布尔值转换
console.log("一元+ true: ", +true);  // 输出: 1
console.log("一元+ false: ", +false); // 输出: 0

console.log("Number true: ", Number(true));  // 输出: 1
console.log("Number false: ", Number(false)); // 输出: 0

内容的提问来源于stack exchange,提问作者Ab_theman23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 04:00:08