当前位置: 首页 > 面试题库 >

为什么JavaScript在字符串和数字之间对加号和减号运算符的处理方式不同?

朱啸
2023-03-14
问题内容

我不明白为什么JavaScript会这样工作。

console.log("1" + 1);
console.log("1" - 1);

第一行打印11,第二行打印0。为什么JavaScript将第一行作为字符串处理而第二行作为数字处理?


问题答案:

字符串串联完成后,+Javascript会将第一个数字1转换为字符串,并将“ 1”和“ 1”串联为“ 11”。

您无法对字符串执行减法运算,因此Javascript将第二个“ 1”转换为数字,并从1中减去1,从而得出零。



 类似资料:
  • 这个问题类似于我之前的问题拆分一个包含破折号和减号的字符串。但我问错了,然后它得到了稍微不同的语义,人们从这个角度回答(包括)。因此,与其修改这个问题,我认为最好是提出一个新问题。 我必须拆分一个包含连字符-减号和减号的字符串。我尝试根据Unicode字符(https://en.wikipedia.org/wiki/Hyphen#Unicode)进行拆分,但考虑到减号与连字符-减号相同。有什么方法

  • 问题内容: 我只需要返回字符串中方括号内包含的文本。我有以下正则表达式,但这也会返回方括号: 字符串只能包含一组方括号,例如: 我希望匹配项包含“一些重要信息”,而不是当前包含的“ [一些重要信息]”。 问题答案: 使用分组。我添加了一个使之匹配的“ ungreedy”,因为这可能就是您想要的。

  • 问题内容: 我有一些JavaScript代码: 什么是(尖)运算符在Javascript中是什么意思? 问题答案: 该运算符是按位XOR运算符。要平方一个值,请使用:

  • 我必须拆分一个包含破折号和减号的字符串。我试图根据unicode字符进行拆分(https://en.wikipedia.org/wiki/Hyphen#Unicode),仍然考虑减号与破折号字符相同。我如何解决它? 预期产出 (国家) (美国) -1个 实际输出量 (国家) (美国) //实际上,这里会打印空行,但编辑器会压缩空行 1. 我想在字符串连接期间会发生一些转换,但不确定。欢迎任何解决这

  • 本文向大家介绍C语言中无符号数和有符号数之间的运算,包括了C语言中无符号数和有符号数之间的运算的使用技巧和注意事项,需要的朋友参考一下 C语言中有符号数和无符号数进行运算(包括逻辑运算和算术运算)默认会将有符号数看成无符号数进行运算,其中算术运算默认返回无符号数,逻辑运算当然是返回0或1了。 unsigned int和int进行运算 直接看例子来说明问题吧 输出结果为: 这是因为a和b进行比较的时

  • 我在看的书:CS-app 2。c有无符号和有符号的int类型,并且在大多数架构中使用二进制补码算法来实现有符号值;但是学了一些汇编代码之后,发现很少有指令区分无符号和有符号。所以我的问题是: > 区分有符号和无符号是编译器的责任吗?如果是,它是如何做到的? 谁实现两个补码算法——CPU还是编译器? 添加更多信息: 在学习了更多的指令后,实际上有一些指令区分有符号和无符号,例如setg、seta等。