在javascript中解释+ var和-var一元运算符

时间:2012-08-25 09:31:22

标签: javascript unary-operator

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

+a;
-a;

据我所知, + a; 意味着使变量成为a的正值而 -a; 意味着使变量成为负值一个。我尝试了很多例子:

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

输出仍为-10;

我也试过了:

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

输出为0;

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

7 个答案:

答案 0 :(得分:25)

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

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

abs函数执行您认为+ opreator的功能;无论原始符号如何,它都会使值为正值。

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

执行+a几乎与执行a * 1相同;如果需要,它会将a中的值转换为数字,但之后不会更改该值。

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

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

var a = "5";
a = parseInt(a, 10); //5

答案 1 :(得分:3)

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

var threeStr = '3.0'
var three = +threeStr
console.log(threeStr + 3) // '3.03'
console.log(three + 3) //6

答案 2 :(得分: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)=正*正=正= 0(也许使用true是一个更好的例子)

答案 3 :(得分:1)

a = 1
b = -a
console.log(b)

output
-1

答案 4 :(得分:0)

试试这个

false == 0 // returns true

所以,

a = false

a = +a //a * 1

console.log(a) // prints 0 as expected

答案 5 :(得分: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

答案 6 :(得分:-1)

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

多数民众赞成!!!!!!