首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >javascript中的Explain +var和-var一元运算符

javascript中的Explain +var和-var一元运算符
EN

Stack Overflow用户
提问于 2012-08-25 17:31:22
回答 7查看 7.4K关注 0票数 21

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

代码语言:javascript
运行
复制
+a;
-a;

根据我的理解,+ a ;的意思是使变量为a的正值,-a的意思是使变量为a的负值。我尝试了许多示例,例如:

代码语言:javascript
运行
复制
a = -10;
a = +a;
document.writeln(a);

,但输出仍为-10;

我也尝试过:

代码语言:javascript
运行
复制
a = false;
a = +a;
document.writeln(a);

,输出为0;

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

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-08-25 17:35:43

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

代码语言:javascript
运行
复制
var a = 4;
a = -a; // -4
a = +a; // -4

abs函数执行您认为+运算符执行的操作;它使值为正,而不考虑原始符号。

代码语言:javascript
运行
复制
var a =-4;
a = Math.abs(a); // 4

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

代码语言:javascript
运行
复制
var a = "5";
a = +a; // 5

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

代码语言:javascript
运行
复制
var a = "5";
a = parseInt(a, 10); //5
票数 27
EN

Stack Overflow用户

发布于 2012-08-25 17:36:13

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

代码语言:javascript
运行
复制
var threeStr = '3.0'
var three = +threeStr
console.log(threeStr + 3) // '3.03'
console.log(three + 3) //6
票数 4
EN

Stack Overflow用户

发布于 2012-08-25 17:49:08

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

乘法规则:

代码语言:javascript
运行
复制
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  

考虑到你的例子:

代码语言:javascript
运行
复制
a = -10;
a = +a
document.writeln(a);

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

代码语言:javascript
运行
复制
a = false;
a = +a;
document.writeln(a);

false == 0,+a = +(+0) =正*正=正=0(可能使用true是更好的例子)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12120802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档