Respuestas:
var o = {
r: 'some value',
t: 'some other value'
};
es funcionalmente equivalente a
var o = new Object();
o.r = 'some value';
o.t = 'some other value';
Y también, se pueden usar dos puntos para etiquetar una declaración. por ejemplo
var i = 100, j = 100;
outerloop:
while(i>0) {
while(j>0) {
j++
if(j>50) {
break outerloop;
}
}
i++
}
Ustedes están olvidando que el colon también se usa en el operador ternario (aunque no sé si jquery lo usa para este propósito).
el operador ternario es una forma de expresión (las expresiones devuelven un valor) de una instrucción if / then. se usa así:
var result = (condition) ? (value1) : (value2) ;
Un operador ternario también podría usarse para producir efectos secundarios como si / entonces, pero esta es una práctica muy mala.
El ':' es un delimitador para pares de valores clave básicamente. En su ejemplo, es una notación literal de objetos Javascript.
En javascript, los objetos se definen con dos puntos delimitando el identificador de la propiedad y su valor para que pueda tener lo siguiente:
return {
Property1 : 125,
Property2 : "something",
Method1 : function() { /* do nothing */ },
array: [5, 3, 6, 7]
};
y luego úsalo como:
var o = {
property1 : 125,
property2 : "something",
method1 : function() { /* do nothing */ },
array: [5, 3, 6, 7]
};
alert(o.property1); // Will display "125"
Un subconjunto de esto también se conoce como JSON (Javascript Object Notation), que es útil en llamadas AJAX porque es compacto y rápido de analizar en idiomas del lado del servidor y Javascript puede deserializar fácilmente una cadena JSON en un objeto.
// The parenthesis '(' & ')' around the object are important here
var o = eval('(' + "{key: \"value\"}" + ')');
También puede poner la clave entre comillas si contiene algún tipo de carácter o espacios especiales, pero no lo recomendaría porque solo hace que las cosas sean más difíciles de trabajar.
Tenga en cuenta que la notación literal de objetos JavaScript en el lenguaje JavaScript es diferente del estándar JSON para el paso de mensajes. La principal diferencia entre los 2 es que las funciones y los constructores no son parte del estándar JSON , pero están permitidos en los literales de objetos JS.
Es parte de la sintaxis literal del objeto. El formato básico es:
var obj = { field_name: "field value", other_field: 42 };
Luego puede acceder a estos valores con:
obj.field_name; // -> "field value"
obj["field_name"]; // -> "field value"
Incluso puede tener funciones como valores, básicamente proporcionándole los métodos del objeto:
obj['func'] = function(a) { return 5 + a;};
obj.func(4); // -> 9
Se puede usar para enumerar objetos en una variable. Además, se usa un poco en la forma abreviada de una oración if:
var something = {face: 'hello',man: 'hey',go: 'sup'};
Y llamándolo así
alert(something.man);
También la oración if:
function something() {
(some) ? doathing() : dostuff(); // if some = true doathing();, else dostuff();
}
No olvidemos la declaración de cambio, donde se utilizan dos puntos después de cada "caso".
En general, estos son los escenarios en los que se usa dos puntos ':' en JavaScript
1- Declarando e inicializando un objeto
var Car = {model:"2015", color:"blue"}; //car object with model and color properties
2- Configuración de una etiqueta (no recomendado ya que da como resultado una estructura de control complicada y un código Spaghetti)
List:
while(counter < 50)
{
userInput += userInput;
counter++;
if(userInput > 10000)
{
break List;
}
}
3- En la declaración de cambio
switch (new Date().getDay()) {
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
break;
default:
text = "Looking forward to the Weekend";
}
4- En operador ternario
document.getElementById("demo").innerHTML = age>18? "True" : "False";
||. Ejemplo: var a = false, b = a || 'Default value';es equivalente avar a = false, b = a : 'Default value';
Eso es JSON, o JavaScript Object Notation. Es una forma rápida de describir un objeto o un mapa hash. Lo que está antes de los dos puntos es el nombre de la propiedad, y lo que está después de los dos puntos es su valor. Entonces, en este ejemplo, hay una propiedad "r", cuyo valor es lo que esté en la variable r. Lo mismo para t.
Un error estúpido que cometí hace un tiempo que podría ayudar a algunas personas.
Tenga en cuenta que si está usando ":" en un evento como este, el valor no cambiará
var ondrag = (function(event, ui) {
...
nub0x: event.target.offsetLeft + event.target.clientWidth/2;
nub0y = event.target.offsetTop + event.target.clientHeight/2;
...
});
Entonces "nub0x" se inicializará con el primer evento que ocurra y nunca cambiará su valor. Pero "nub0y" cambiará durante los próximos eventos.
event.target.offsetLeft + event.target.clientWidth/2;se ejecuta cada vez que se llama a su método ondrag, pero nunca asigne el valor anub0x
:se está tratando como si fuera un ||. Por lo tanto, event.target.offsetLeft + event.target.clientWidth/2;solo se activará cada vez que se proporcione nub0xequivale a falso.
Otro uso de dos puntos en JavaScript es cambiar el nombre de una variable, es decir:
const person = {
nickNameThatIUseOnStackOverflow: "schlingel",
age: 30,
firstName: "John"
};
const { nickNameThatIUseOnStackOverflow: nick } = person; // I take nickNameThatIUseOnStackOverflow but want to refer it as "nick" from now on.
nick = "schling";
Esto es útil si utiliza una biblioteca de terceros que devuelve valores que tienen nombres de variables largos / incómodos que desea cambiar de nombre en su código.