JavaScript代码`"1" - + -1`运行输出2的运算逻辑是什么?
JavaScript表达式
"1" - + -1运算逻辑拆解 核心逻辑涉及运算符优先级和隐式类型转换两个知识点,具体执行步骤如下:
- 第一步:确定运算符优先级。JS中一元正号(
+)、一元负号(-)的优先级远高于二元减法运算符(-),会优先从右到左执行一元运算。 - 第二步:执行最右侧一元负号运算:
-1的运算结果为数值类型的-1。 - 第三步:执行左侧相邻的一元正号运算:
+ (-1),一元正号的作用是将操作数强制转换为数值类型,此处操作数已经是数值-1,运算结果仍为-1。 - 第四步:执行二元减法运算:
"1" - (-1)。减法运算要求两边操作数均为数值类型,因此会自动将字符串类型的"1"隐式转换为数值1,最终运算为1 - (-1) = 2。 - 第五步:
console.log(Output)打印结果为2。
备注:当减法运算两边出现非数值类型时,JS默认会调用
Number()方法将操作数转为数值后再做运算,这也是字符串"1"可以直接参与减法计算的原因。
内容的提问来源于stack exchange,提问作者Alixy Mizuki
相关产品推荐
相关产品推荐

