[英]Explain +var and -var unary operator in javascript
我試圖了解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;
這些一元運算符的實際代碼示例是什么?
+
運算符不會更改值的符號,而-
運算符則會更改符號。 兩個運算符的結果都取決於原始值的符號,無論原始符號如何,兩個運算符都不會將值設為正或負。
var a = 4;
a = -a; // -4
a = +a; // -4
abs
函數會執行您認為+
符所執行的操作; 無論原始符號是什么,它都會使該值為正。
var a =-4;
a = Math.abs(a); // 4
+a
實際上與a * 1
相同; 它將在a
將a中的值轉換為數字,但是此后它不會更改該值。
var a = "5";
a = +a; // 5
有時使用+
運算符將字符串轉換為數字,但是您具有parseInt
和parseFloat
函數,可以用更特定的方式進行轉換。
var a = "5";
a = parseInt(a, 10); //5
一個例子是它們可用於將字符串轉換為數字,
var threeStr = '3.0'
var three = +threeStr
console.log(threeStr + 3) // '3.03'
console.log(three + 3) //6
我想從基本的數學角度解釋這一點:
乘法規則:
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是更好的例子)
a = 1
b = -a
console.log(b)
output
-1
嘗試這個
false == 0 // returns true
所以,
a = false
a = +a //a * 1
console.log(a) // prints 0 as expected
變量“ 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
+ a表示a * 1和-a表示a *(-1)
而已!!!!!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.