8 个回答

这是一个典型的JS数据类型隐式转换问题:示例

console.log("1"*2);//12
console.log("1"/2);//0.5
console.log("1a"/2);//NaN
console.log(1+"5"); // 15
console.log("5"); // 5
console.log(1-"5"); // -4
console.log("5"-1); // 4

console.log(+"5"); // 5
console.log(-"5"); // -5

不同类型的隐式转换是有优先级的,比如上述的数字和字符串的乘除法,减法,会将字符串转换为数字。
比如数字和字符串的加法,会将数字转换为字符串。

+,-号配上字符串,则会直接转为数字。

这些都是JS基础知识~

一元+操作符对非数值自动执行Number()

+号可以类型转换

你想啊,什么类型前边才可以有正号+,只有数的,不是数怎么办,看看能不能变成数,可以变成,搜嘎!得到数字5,妥妥的

+号和-号都会试图转换数据为数字,跟1+""一个意思

建议看下《JavaScript高级程序设计》

新手上路,请多包涵

这是一个便捷写法,+这个操作符,在这种情况下,相当于Number()这个函数,举一些例子:
+“012” 其实等同于 Number("012")
+new Date() 其实等同于Number(new Date()),等同于new Date().getTime()
+-5 其实等同于 Number(-5)
你理解为这是js的隐式转换就行啦~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题