Risposte:
var o = {
r: 'some value',
t: 'some other value'
};
è funzionalmente equivalente a
var o = new Object();
o.r = 'some value';
o.t = 'some other value';
Inoltre, i due punti possono essere utilizzati per etichettare un'istruzione. per esempio
var i = 100, j = 100;
outerloop:
while(i>0) {
while(j>0) {
j++
if(j>50) {
break outerloop;
}
}
i++
}
Ragazzi, state dimenticando che il colon viene utilizzato anche nell'operatore ternario (anche se non so se jquery lo usi per questo scopo).
l'operatore ternario è una forma di espressione (le espressioni restituiscono un valore) di un'istruzione if / then. è usato così:
var result = (condition) ? (value1) : (value2) ;
Un operatore ternario potrebbe anche essere usato per produrre effetti collaterali proprio come se / allora, ma questa è una pratica profondamente negativa.
Fondamentalmente ":" è un delimitatore per le coppie chiave-valore. Nel tuo esempio è una notazione letterale di oggetti Javascript.
In JavaScript, gli oggetti sono definiti con i due punti che delimitano l'identificatore per la proprietà e il suo valore in modo da poter avere quanto segue:
return {
Property1 : 125,
Property2 : "something",
Method1 : function() { /* do nothing */ },
array: [5, 3, 6, 7]
};
e poi usalo come:
var o = {
property1 : 125,
property2 : "something",
method1 : function() { /* do nothing */ },
array: [5, 3, 6, 7]
};
alert(o.property1); // Will display "125"
Un sottoinsieme di questo è anche noto come JSON (Javascript Object Notation), utile nelle chiamate AJAX perché è compatto e rapido da analizzare in lingue lato server e Javascript può facilmente serializzare una stringa JSON in un oggetto.
// The parenthesis '(' & ')' around the object are important here
var o = eval('(' + "{key: \"value\"}" + ')');
Puoi anche inserire la chiave tra virgolette se contiene una sorta di carattere o spazi speciali, ma non lo consiglierei perché rende le cose più difficili con cui lavorare.
Tieni presente che la notazione letterale di oggetti JavaScript nel linguaggio JavaScript è diversa dallo standard JSON per il passaggio dei messaggi. La differenza principale tra 2 è che funzioni e costruttori non fanno parte dello standard JSON , ma sono consentiti nei letterali degli oggetti JS.
Fa parte della sintassi letterale dell'oggetto. Il formato di base è:
var obj = { field_name: "field value", other_field: 42 };
Quindi puoi accedere a questi valori con:
obj.field_name; // -> "field value"
obj["field_name"]; // -> "field value"
Puoi anche avere funzioni come valori, in pratica ti danno i metodi dell'oggetto:
obj['func'] = function(a) { return 5 + a;};
obj.func(4); // -> 9
Può essere usato per elencare oggetti in una variabile. Inoltre, viene usato un po 'nella scorciatoia di una frase if:
var something = {face: 'hello',man: 'hey',go: 'sup'};
E chiamandolo così
alert(something.man);
Anche la frase if:
function something() {
(some) ? doathing() : dostuff(); // if some = true doathing();, else dostuff();
}
Non dimentichiamo l'istruzione switch, in cui i due punti vengono utilizzati dopo ogni "caso".
Questi sono generalmente gli scenari in cui i due punti ":" sono utilizzati in JavaScript
1- Dichiarazione e inizializzazione di un oggetto
var Car = {model:"2015", color:"blue"}; //car object with model and color properties
2- Impostazione di un'etichetta (sconsigliato poiché causa complicate strutture di controllo e codice Spaghetti)
List:
while(counter < 50)
{
userInput += userInput;
counter++;
if(userInput > 10000)
{
break List;
}
}
3- In Switch Switch Statement
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- Operatore ternario
document.getElementById("demo").innerHTML = age>18? "True" : "False";
||. Esempio: var a = false, b = a || 'Default value';è equivalente avar a = false, b = a : 'Default value';
Questa è JSON, o notazione oggetto JavaScript. È un modo rapido per descrivere un oggetto o una mappa hash. La cosa prima dei due punti è il nome della proprietà e la cosa dopo i due punti è il suo valore. Quindi, in questo esempio, c'è una proprietà "r", il cui valore è qualunque cosa sia nella variabile r. Lo stesso per t.
Uno stupido errore che ho fatto qualche tempo fa che potrebbe aiutare alcune persone.
Tieni presente che se stai utilizzando ":" in un evento come questo, il valore non cambierà
var ondrag = (function(event, ui) {
...
nub0x: event.target.offsetLeft + event.target.clientWidth/2;
nub0y = event.target.offsetTop + event.target.clientHeight/2;
...
});
Quindi "nub0x" verrà inizializzato con il primo evento che si verifica e non cambierà mai il suo valore. Ma "nub0y" cambierà durante i prossimi eventi.
event.target.offsetLeft + event.target.clientWidth/2;viene eseguita ogni volta che viene chiamato il metodo ondrag, ma non assegnare mai il valore anub0x
:viene trattato come se fosse un ||. Pertanto, event.target.offsetLeft + event.target.clientWidth/2;si attiverà solo ogni volta che fornito nub0xequivale a falso.
Un altro uso dei due punti in JavaScript è di rinominare una variabile, ovvero:
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";
Ciò è utile se si utilizza una libreria di terze parti che restituisce valori con nomi di variabili scomode / lunghe che si desidera rinominare nel codice.