Explain+var y-var operador unario en javascript
unary-operator (7)
+ a significa a * 1 y -a significa a * (- 1)
¡¡¡¡¡¡Eso es!!!!!!
Estoy tratando de entender los operadores unarios en javascript, encontré esta guía aquí http://wiki.answers.com/Q/What_are_unary_operators_in_javascript que tiene más sentido, pero lo que no entiendo es cómo se usarían los siguientes ejemplos en un ejemplo de código real:
+a;
-a;
A mi entender el + a; está destinado a hacer que la variable sea el valor positivo de a y la -a; está destinado a hacer de la variable el valor negativo de a. He intentado una serie de ejemplos como:
a = -10;
a = +a;
document.writeln(a);
Y la salida sigue siendo -10;
También he intentado:
a = false;
a = +a;
document.writeln(a);
Y la salida es 0;
¿Qué es un ejemplo de código práctico de estos operadores unarios?
El operador ''+'' en una variable ''a'' simplemente significa: a
''-'' operador en una variable ''a'' simplemente significa: -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
El operador +
no cambia el signo del valor, y el operador -
cambia el signo. El resultado de ambos operadores depende del signo del valor original, ninguno de los dos operadores hace que el valor sea positivo o negativo, independientemente del signo original.
var a = 4;
a = -a; // -4
a = +a; // -4
La función abs
hace lo que crees que hace el opreator +
; hace que el valor sea positivo independientemente del signo original.
var a =-4;
a = Math.abs(a); // 4
Hacer +a
es prácticamente lo mismo que hacer a * 1
; convierte el valor en a
a un número si es necesario, pero después de eso no cambia el valor.
var a = "5";
a = +a; // 5
El operador +
se usa a veces para convertir cadenas en números, pero tiene las funciones parseInt
y parseFloat
para realizar la conversión de una manera más específica.
var a = "5";
a = parseInt(a, 10); //5
Me gustaría explicar esto desde un punto matemático básico:
Las reglas multiplicadoras:
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
Teniendo en cuenta tu ejemplo:
a = -10;
a = +a
document.writeln(a);
+ a = + (- 10) = Positivo x Negativo = Negativo = -10
a = false;
a = +a;
document.writeln(a);
false == 0, + a = + (+ 0) = Positivo * Positivo = Positivo = 0 (tal vez use true es un mejor ejemplo)
Prueba esto
false == 0 // returns true
Asi que,
a = false
a = +a //a * 1
console.log(a) // prints 0 as expected
Un ejemplo es que se pueden usar para convertir una cadena en un número,
var threeStr = ''3.0''
var three = +threeStr
console.log(threeStr + 3) // ''3.03''
console.log(three + 3) //6
a = 1
b = -a
console.log(b)
output
-1