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

fak*_*ood 18 javascript unary-operator

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

+a;
-a;
Run Code Online (Sandbox Code Playgroud)

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

a = -10;
a = +a;
document.writeln(a);
Run Code Online (Sandbox Code Playgroud)

输出仍然是-10;

我也尝试过:

a = false;
a = +a;
document.writeln(a);
Run Code Online (Sandbox Code Playgroud)

输出为0;

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

Guf*_*ffa 25

+运营商不改变值的符号和-符不改变的迹象.两个运算符的结果取决于原始值的符号,无论原始符号如何,运算符都不会使值为正或负.

var a = 4;
a = -a; // -4
a = +a; // -4
Run Code Online (Sandbox Code Playgroud)

abs功能完成您认为的+opreator所做的事情; 无论原始符号如何,它都会使值为正值.

var a =-4;
a = Math.abs(a); // 4
Run Code Online (Sandbox Code Playgroud)

+a的几乎和做的一样a * 1; a如果需要,它会将值转换为数字,但之后它不会更改值.

var a = "5";
a = +a; // 5
Run Code Online (Sandbox Code Playgroud)

+操作有时用于字符串转换为数字,但你有parseIntparseFloat功能在一个更具体的方式做转换.

var a = "5";
a = parseInt(a, 10); //5
Run Code Online (Sandbox Code Playgroud)