在 JavaScript 中,加法和連線運算子是否相同?
我們不能說兩者相同或不同。在某些情況下,加法和連線運算子會產生相同的結果,但在某些情況下,它們的結果會不同。這完全取決於變數的型別。我們將在下面詳細瞭解。
我們在 JavaScript 中使用 + 運算子進行加法,使用 concat() 方法進行連線。在某些情況下,+ 運算子和 concat() 方法都會返回相同的結果。使用 + 運算子和 concat() 方法連線兩個字串會返回相同的結果。
我們也可以對加法和連線運算都使用相同的 + 運算子,但這兩個操作並不相同。當其中一個運算元是字串時,+ 運算子會執行連線操作。如果兩個運算元都是數字,則執行簡單的加法。
讓我們使用不同的程式示例詳細瞭解在 JavaScript 中加法和連線運算子是否相同。
兩個字串的加法和連線
讓我們將兩個變數視為字串。
示例:使用加法(+)
<!DOCTYPE html>
<html>
<body>
<h2>Adding two strings</h2>
<p id="demo"></p>
<script>
let x = "Hello";
let y = "World!";
let z = x + y;
document.getElementById("demo").innerHTML = z;
document.write(typeof(z));
</script>
</body>
</html>
我們可以在這裡觀察到,如果我們使用加法運算連線兩個字串,輸出將是一個字串。
示例:使用連線 (concat)
<!DOCTYPE html>
<html>
<body>
<p>Concatenating two strings</p>
<p id="demo"></p>
<script>
let x = "Hello";
let y = "World!";
let z = x.concat(y);
document.getElementById("demo").innerHTML = z;
document.write(typeof(z));
</script>
</body>
</html>
您會注意到,兩個字串的加法和連線是相同的。
兩個陣列的加法和連線
讓我們將兩個變數視為陣列。
示例:使用加法(+)
<!DOCTYPE html>
<html>
<body>
<p>Adding two arrays</p>
<p id="demo"></p>
<script>
let arr1 = [1,2,3,4];
let arr2 = [5,6,7,8];
let res = arr1 + arr2;
document.getElementById("demo").innerHTML = res;
document.write(typeof(res));
</script>
</body>
</html>
在這裡我們可以檢查,當我們新增兩個陣列時,第二個陣列的第一個元素與第一個陣列的最後一個元素組合。加法(+)不會自動新增逗號(,)。如果您需要分隔這些元素,則需要在第二個陣列的第一個位置新增一個空元素。例如,
示例
<!DOCTYPE html>
<html>
<body>
<p>Adding two arrays</p>
<p id="demo"></p>
<script>
let arr1 = [1,2,3,4];
let arr2 = [,5,6,7,8];
let res = arr1 + arr2;
document.getElementById("demo").innerHTML = res;
document.write(typeof(res));
</script>
</body>
</html>
如果我們使用加法連線兩個陣列,輸出將是字串。
示例:使用 concat() 連線兩個陣列
我們將在此處檢查將變數連線為陣列。
<!DOCTYPE html>
<html>
<body>
<p>Concatenate two arrays</p>
<p id="demo"></p>
<script>
let arr1 = [1,2,3,4];
let arr2 = [5,6,7,8];
let res = arr1.concat(arr2);
document.getElementById("demo").innerHTML = res;
document.write(typeof(res));
</script>
</body>
</html>
這裡,不需要在第二個陣列的第一個位置新增空元素。如果我們連線兩個陣列,輸出將是一個物件。
兩個數字的加法和連線
讓我們將兩個變數視為數字。
示例:使用加法(+)
<!DOCTYPE html>
<html>
<body>
<p>Adding two numbers</p>
<p id="demo"></p>
<script>
let x = 102;
let y = 199;
let z = x + y;
document.getElementById("demo").innerHTML = z;
document.write(typeof(z));
</script>
</body>
</html>
我們可以在這裡觀察到,如果我們使用加法(+)連線兩個數字,輸出將是一個數字。
示例:使用連線 (concat)
<!DOCTYPE html>
<html>
<body>
<p>Concating two numbers</p>
<p id="demo"></p>
<script>
let x = 102;
let y = 199;
try{
let z = x.concat(y);
document.getElementById("demo").innerHTML = z;
} catch(e) {
document.getElementById("demo").innerHTML = e;
}
</script>
</body>
</html>
這將丟擲一個錯誤。如果我們連線兩個數字,輸出是一個錯誤。
布林值的加法和連線
讓我們將兩個變數視為布林值。
示例:使用加法(+)
<!DOCTYPE html>
<html>
<body>
<p>Adding two booleans</p>
<p id="demo"></p>
<script>
let addTrue = true;
let addFalse = false;
let res = addTrue + addFalse;
document.getElementById("demo").innerHTML = res;
document.write(typeof(res));
</script>
</body>
</html>
在這裡,true 被計為 1,false 被計為 0。它只是一個數學運算,即加法。
如果我們有兩個變數都為 true,則輸出為 2。如果兩個變數都為 false,則輸出為 0。
示例:使用連線 (concat)
<!DOCTYPE html>
<html>
<body>
<p>Concating two booleans</p>
<p id="demo"></p>
<script>
try{
let concatTrue = true;
let concatFalse = false;
let res = concatTrue.concat(concatFalse);
document.getElementById("demo").innerHTML = res;
} catch(e) {
document.getElementById("demo").innerHTML = e;
}
</script>
</body>
</html>
在這裡我們可以看到,連線對於連線布林值不起作用。如果我們連線布林值,它會丟擲一個未捕獲的錯誤。
物件的加法和連線
現在,我們檢查變數是否為物件。
示例:使用加法(+)
<!DOCTYPE html>
<html>
<body>
<p>Adding two objects</p>
<p id="demo"></p>
<script>
let obj1 = {name : "xx"};
let obj2 = {name : "yy"};
let res = obj1 + obj2;
document.getElementById("demo").innerHTML = res;
document.write(typeof(res));
</script>
</body>
</html>
示例:使用連線 (concat)
<!DOCTYPE html>
<html>
<body>
<p>Concatenating two objects</p>
<p id="demo"></p>
<script>
try{
let obj1 = {name : "xx"};
let obj2 = {name : "yy"};
let res = obj1.concat(obj2);
document.getElementById("demo").innerHTML = res;
document.write(typeof(res));
} catch(e) {
document.getElementById("demo").innerHTML = e;
}
</script>
</body>
</html>
到目前為止,我們已經看到了將變數作為相同資料型別進行加法和連線。現在,我們將檢查不同資料型別的行為。
示例
在這裡,我們將一個變數作為數字,另一個變數作為字串。
<!DOCTYPE html>
<html>
<body>
<p>Addition of number and string</p>
<p id="demo"></p>
<script>
let num = 100;
let str = " records";
let res = num + str;
document.getElementById("demo").innerHTML = res;
document.write(typeof(res));
</script>
</body>
</html>
示例:使用連線 (concat)
<!DOCTYPE html>
<html>
<body>
<p>Concatenation of number and string</p>
<p id="demo"></p>
<script>
let num = 100;
let str = " records";
let res = str.concat(num);
document.getElementById("demo").innerHTML = res;
document.write(typeof(res));
</script>
</body>
</html>
在這裡,我們已經知道我們不能對數字使用 concat。所以我們將 str 與 num 連線起來。如果我們將數字與 str 連線起來,它會丟擲一個未捕獲的錯誤。
在上面的程式碼中,對於加法和連線,我們將獲得相同的輸出。
示例:使用加法(+)
在這裡,我們將檢查多個變數。
<!DOCTYPE html>
<html>
<body>
<p>Adding multiple variables</p>
<p id="demo"></p>
<script>
let num = 1;
let bool = true;
let arr = [,2,4,5,6];
let str = "Hello";
let obj = {name : " World!"}
let res = num + bool + arr + str + obj;
document.getElementById("demo").innerHTML = res;
document.write(typeof(res))
</script>
</body>
</html>
示例:使用連線 (concat)
<!DOCTYPE html>
<html>
<body>
<p>Concating multiple variables</p>
<p id="demo"></p>
<script>
let num = 1;
let bool = true;
let arr = [,2,4,5,6];
let str = "Hello";
let obj = {name : " World!"}
let res = str.concat(arr).concat(num).concat(bool).concat(obj);
document.getElementById("demo").innerHTML = res;
document.write(typeof(res))
</script>
</body>
</html>
在上面,我們看到了加法和連線的區別。在某些情況下,兩者的輸出相同,但在某些情況下則不同。對於相同的情況,輸出相同,但結果的型別不同。正如我們所討論的,輸出將取決於變數的型別。
希望這能對加法和連線進行一些澄清。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP