为啥 +"" 在 JavaScript 中返回 0? [复制]
Posted
技术标签:
【中文标题】为啥 +"" 在 JavaScript 中返回 0? [复制]【英文标题】:Why does +"" returns 0 in JavaScript? [duplicate]为什么 +"" 在 JavaScript 中返回 0? [复制] 【发布时间】:2019-12-15 23:54:11 【问题描述】:我刚刚经过 baNaNa 就到了这里 console.log(+"")
0 我找不到可能的解释。
【问题讨论】:
一元加号在内部执行toNumber()
。检查this
【参考方案1】:
使用+""
与使用Number("")
相同。它将字符串转换为数字。字符串为空,因此值为0
。
console.log(+""); // 0
console.log(Number("")); // 0
console.log(+("0")); // 0
console.log(Number("0")); // 0
console.log(+"123"); // 123
console.log(Number("123")); // 123
console.log(-""); // same as `+""` but also negates the number
console.log(-"123"); // so this will be converted to a number, but also become a negative value
这种解析数字的方式与parseFloat
和parseInt
的行为完全不同。 (主要区别在于Number
尝试获取任何类型变量的数值,即布尔值、字符串、数字、对象......而parseFloat
只是从字符串中读取数字)。
console.log(parseFloat("")); // NaN
console.log(+("")); // 0
console.log(parseFloat("1st")); // 1
console.log(+("1st")); // NaN
【讨论】:
以上是关于为啥 +"" 在 JavaScript 中返回 0? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
为啥 +"" 在 JavaScript 中返回 0? [复制]
为啥 TRUE == "TRUE" 在 R 中为 TRUE?
为啥在 HTML 中使用 href="// 而不是 href="http://? [复制]