21

我试图理解 javascript 中的一元运算符,我在这里找到了本指南http://wiki.answers.com/Q/What_are_unary_operators_in_javascript大部分都很有意义,但我不明白以下示例将如何用于一个实际的代码示例:

+a;
-a;

据我了解+a; 旨在使变量成为 a 和-a的正值;旨在使变量成为 a 的负值。我尝试了许多示例,例如:

a = -10;
a = +a;
document.writeln(a);

并且输出仍然是-10;

我也试过:

a = false;
a = +a;
document.writeln(a);

并且输出为0;

这些一元运算符的实际代码示例是什么?

4

7 回答 7

28

+运算符不会更改值的符号,而运算-符会更改符号。两个运算符的结果都取决于原始值的符号,无论原始符号如何,两个运算符都不会使值变为正数或负数。

var a = 4;
a = -a; // -4
a = +a; // -4

abs函数执行您认为+操作员所做的事情;无论原始符号如何,它都会使值变为正值。

var a =-4;
a = Math.abs(a); // 4

+a实际上和做是一样的a * 1;如果需要,它会将值转换a为数字,但之后它不会更改值。

var a = "5";
a = +a; // 5

+运算符有时用于将字符串转换为数字,但您可以使用和parseInt函数parseFloat以更具体的方式进行转换。

var a = "5";
a = parseInt(a, 10); //5
于 2012-08-25T09:35:43.297 回答
4

一个例子是它们可用于将字符串转换为数字,

var threeStr = '3.0'
var three = +threeStr
console.log(threeStr + 3) // '3.03'
console.log(three + 3) //6
于 2012-08-25T09:36:12.943 回答
2

我想从基本的数学角度来解释这一点:
乘法规则:

Positive x Positive = Positive: 3 x 2 = 6  
Negative x Negative = Positive: (-2) x (-8) = 16   
Negative x Positive = Negative: (-3) x 4 = -12  
Positive x Negative = Negative: 3 x (-4) = -12  

考虑到你的例子:

a = -10;
a = +a
document.writeln(a);

+a = +(-10) = 正 x 负 = 负 = -10

a = false;
a = +a;
document.writeln(a);

false == 0, +a = +(+0) = Positive * Positive = Positive = 0(也许使用 true 是一个更好的例子)

于 2012-08-25T09:49:07.530 回答
0
a = 1
b = -a
console.log(b)

output
-1
于 2012-08-25T09:35:42.453 回答
0

变量“a”中的“+”运算符仅表示:a

变量“a”中的“-”运算符仅表示:-a

Since, in above example 
a=-10;
a= +a; // means a, ie, +(-10) which is -10

but,
a= -a;  // means -a, ie, -(-10) which is +10
于 2012-08-25T09:43:02.327 回答
0

+a 表示 a*1,-a 表示 a*(-1)

就是这样!!!!!!

于 2012-08-25T09:49:13.883 回答
-1

试试这个

false == 0 // returns true

所以,

a = false

a = +a //a * 1

console.log(a) // prints 0 as expected
于 2012-08-25T09:39:29.147 回答