![](/img/trans.png)
[英]Adding and subtracting strings and numbers in Javascript - auto type conversion?
[英]Adding and Subtracting Numbers as Strings
我在關於SO的問題上閱讀了以下內容:
'7'+ 4給出'74',而'7' - 4給出了JavaScript
為什么會這樣?
+
是字符串連接運算符,因此當你執行'7' + 4
你將4
強制轉換為字符串並附加它。 -
運算符沒有這種模糊性。
如果你想明確無誤,請使用parseInt()
或parseFloat()
:
parseInt('7', 10) + 4
為什么將基數指定為10? 因此'077'
不會被解析為八進制。
'+'運算符是為字符串和數字定義的,所以當你將它應用於字符串和數字時,數字將被轉換為字符串,然后字符串將被連接:'7'+ 4 =>'7' +'4'=>'74'但' - '僅為數字而非字符串定義,因此字符串'7'將轉換為數字:'7' - 4 => 7 - 4 => 3
+
運算符在JavaScript中重載以執行連接和添加。 JavaScript確定要執行哪個操作的方式基於操作數。 如果其中一個操作數不是Number
(或number
基本類型),則兩者都將被轉換為字符串以進行連接。
3 + 3 = 6 3 + '3' = 33 '3' + 3 = 33 (new Object) + 3 = '[object Object]3'
但是, -
運算符僅用於數字,因此操作期間操作數將始終轉換為數字。
因為+是濃度,如果你想要添加兩個數字,你應該首先解析它們parseInt()和 - 符號用於減法
由於第一部分是字符串('7'),Javascript中的符號+首先被解釋為連接然后加法。 因此,解釋器將第二部分( 4
)轉換為字符串並將其連接起來。
對於'7' - 4
,除了減法之外沒有其他意義,因此減法完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.