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() 运算符。