【发布时间】:2019-12-15 23:54:11
【问题描述】:
我刚刚经过 baNaNa 就到了这里 console.log(+"")
0 我找不到可能的解释。
【问题讨论】:
-
一元加号在内部执行
toNumber()。检查this
标签: javascript
我刚刚经过 baNaNa 就到了这里 console.log(+"")
0 我找不到可能的解释。
【问题讨论】:
toNumber()。检查this
标签: javascript
使用+""与使用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
【讨论】: