簡體   English   中英

為什么 javascript 顯示字符串所有算術運算?

[英]why javascript show string all arithmetic operation?

如下所示,當 javascript 進行算術運算時,所有值與字符串連接,它顯示一個字符串值,但我有些困惑......

 var x = 10; var y = 20; var sum = x + y; console.log("sum is:" + sum); //this is number
但混亂是

var x = 10; var y = 20; console.log("sum is: " + 10 + 20 ); //why this is string var x = 10; var y = "The value is " + x; // why this is string var x = 10; var y = 20; var sum = x + y; var z = 'sum is' + sum; //why this string console.log("sum is: " + sum) // why this is not string coz it is also concatenation with string.

JavaScript 將以一定的操作順序連接和強制。 您可以在強制轉換為字符串之前添加括號以添加數字。

 console.log("sum is: " + 10 + 20); // sum is: 1020 console.log("sum is: " + (10 + 20)); // sum is: 30

一元 + 運算符可用於將變量轉換為數字:

var y = "5";      // y is a string
var x = + y;      // x is a number

如果變量不能轉換,它仍然會變成一個數字,但值為 NaN(非數字):

var y = "John";   // y is a string
var x = + y;      // x is a number (NaN)

當 JavaScript 嘗試對“錯誤”數據類型進行操作時,它會嘗試將值轉換為“正確”類型。

5 + null    // returns 5         because null is converted to 0
"5" + null  // returns "5null"   because null is converted to "null"
"5" + 2     // returns "52"      because 2 is converted to "2"
"5" - 2     // returns 3         because "5" is converted to 5
"5" * "2"   // returns 10        because "5" and "2" are converted to 5 and 2

因此,如果您將數字放在括號內,例如 (10 + 20),那么它將首先執行算術運算,然后在外面進行連接。 如果其中任何一個是字符串,那么它也會在內部進行連接。

var console.log("sum is : " + (10 + 20) ); // sum is : 30
var console.log("sum is : " + (10 + '20') ); // sum is : 1020

當您將數字與字符串相加時,它會將數字計為字符串,例如console.log("sum is: " + 10 + 20 ) 但是當 10 和 20 在變量下時,它會將數字計為變量值。 如果您想將數字與字符串一起使用,請像這樣使用"sum is: " + parseInt(10)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM