JavaScript 中的一元加號運算子是什麼?
一元運算子是 JavaScript 中最簡單的運算子,它只作用於一個值,或者說一個運算元。JavaScript 中主要有六種一元運算子:
一元加號
一元減號
遞增運算子(字首)
遞增運算子(字尾)
遞減運算子(字首)
遞減運算子(字尾)
在本教程中,我們將學習一元加號 (+) 運算子。使用一元加號運算子只需要在運算元前面加上一個加號。此運算子主要用於將非數值值轉換為數值值,當將其用於數值值時,它不會對其產生任何影響,其值保持不變。
語法
可以使用以下語法使用一元加號運算元:
let x = +y;
讓我們來看一些例子,以便更清楚地理解一元加號運算子:
示例
使用一元加號運算子與整數值
在下面的示例中,我們在整數值前面使用一元加號運算子。
<html> <body> <script> const x = "10"; let y; y = +x; const p = "0"; let q; q = +p; const i = "-10" let j; j= +i; document.write(y); document.write("</br>"); document.write(q); document.write("</br>"); document.write(j); </script> </body> </html>
我們可以看到,當我們在整數值前面使用一元加號運算子時,它會返回我們提供的相同整數值,無論是正整數還是負整數。您可以進一步檢查結果,在小數或分數值前面使用該運算子,它將給出與上面相同的 結果。
示例
使用一元加號運算子與字串值。
在這裡,我們將在一元加號運算子前面使用字串值。
<html> <body> <script> const x = "a"; let y; y = +x; const p = "Prince"; let q; q = +p; document.write(y); document.write("</br>"); document.write(q); </script> </body> </html>
我們可以看到,當我們在字串或字元值前面使用一元加號運算子時,它會返回“NaN”,指的是“非數字”。
示例
使用一元加號運算子與布林值。
在這裡,我們將在一元加號運算子前面使用布林值。
<html> <body> <script> const x = true; let y; y = +x; const p = false; let q; q = +p; document.write(y); document.write("</br>"); document.write(q); </script> </body> </html>
我們可以看到,當我們在布林值(即 true 或 false)前面使用一元加號運算子時,一元加號運算子會將 true 值轉換為 1,並將 false 值轉換為 0。
示例
使用一元加號運算子與函式和物件
在這裡,我們將在一元加號運算子前面使用函式和物件值。
<html> <body> <script> let x = { name: 'John', age:'10' } let y; y = +x; const p = function(x){ return x }; let q; q = +p; document.write(y); document.write("</br>"); document.write(q); </script> </body> </html>
示例
我們可以看到,當我們在函式或物件前面使用一元加號運算子時,它會將兩者都轉換為 NaN,即“非數字”。
但是,有一種方法可以使用一元加號運算子將物件轉換為數字,那就是在物件中使用 toString() 或 valueOf() 方法,如下例所示。
<html> <body> <script> let x = { name: 'Rishit', toString: function () { return '12'; }, }; let y; y = +x; const p = { name: 'Rishit', toString: function () { return '12'; }, valueOf: function () { return '20'; }, }; let q; q = +p; document.write(y); document.write("</br>"); document.write(q); </script> </body> </html>
我們可以看到,當我們只使用 toString() 方法時,結果為 12;如果我們同時使用 toString() 和 valueOf() 方法,結果為 20,因為一元加號運算子優先考慮 valueOf() 運算子。