为什么我得到-'54'+30
表示为 -24 的结果,但是当我尝试从表达式中删除(减号)-
时,这只是字符串的连接并给出5430
作为输出。
console.log(-'54'+30)
console.log('54'+30)
最佳答案
因为unary negation具有比加法更高的operator precedance。
一元求反还将其操作数转换为Number
Per ECMA Spec 2017:
对于-'54'+30
,步骤为:
-
String
,因此它变成了Number
+
Number
,因此+
操作是加法运算,而不是串联关于javascript - 用Javascript为什么-'54' +30的结果是-24(在JavaScript中键入强制),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51366414/