Cosa fa ‘:’ (due punti) in JavaScript?

Sto imparando JavaScript e mentre sfoglio la libreria jQuery vedo : (due punti) che viene usato molto. A cosa serve questo in JavaScript?

 // Return an array of filtered elements (r) // and the modified expression string (t) return { r: r, t: t }; 

 var o = { r: 'some value', t: 'some other value' }; 

è funzionalmente equivalente a

 var o = new Object(); or = 'some value'; ot = 'some other value'; 

Inoltre, è ansible utilizzare i due punti per etichettare una dichiarazione. per esempio

 var i = 100, j = 100; outerloop: while(i>0) { while(j>0) { j++ if(j>50) { break outerloop; } } i++ } 

Voi ragazzi state dimenticando che il colon è anche usato nell’operatore ternario (anche se non so se jquery lo usa 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.

Il ‘:’ è un delimitatore per le coppie di valori chiave in pratica. Nel tuo esempio è una notazione letterale dell’object 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 quindi usarlo 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 è noto anche come JSON (JavaScript Object Notation) che è utile nelle chiamate AJAX perché è compatto e veloce da analizzare nei linguaggi lato server e Javascript può facilmente serializzare una stringa JSON in un object.

 // The parenthesis '(' & ')' around the object are important here var o = eval('(' + "{key: \"value\"}" + ')'); 

Puoi anche inserire la chiave tra virgolette se contiene qualche tipo di carattere o spazi speciali, ma non la consiglierei perché rende solo le cose più difficili da lavorare.

Tenere presente che la notazione letterale dell’object JavaScript nella lingua JavaScript è diversa dallo standard JSON per il trasferimento di messaggi. La differenza principale tra il 2 è che le funzioni e i costruttori non fanno parte dello standard JSON , ma sono consentiti nei letterali degli oggetti JS.

Fa parte della syntax letterale dell’object. 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, fondamentalmente fornendoti i metodi dell’object:

 obj['func'] = function(a) { return 5 + a;}; obj.func(4); // -> 9 

Può essere usato per elencare oggetti in una variabile. Inoltre, è usato un po ‘nella stenografia 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”.

Quello è JSON, o JavaScript Object Notation. È un modo rapido per descrivere un object o una mappa hash. La cosa prima dei due punti è il nome della proprietà, e la cosa dopo il colon è il suo valore. Quindi, in questo esempio, c’è una proprietà “r”, il cui valore è qualunque cosa sia nella variabile r. Lo stesso per t.

Questi sono generalmente gli scenari in cui “:” è usato in JavaScript

1- Dichiarazione e inizializzazione di un object

 var Car = {model:"2015", color:"blue"}; //car object with model and color properties 

2- Impostazione di un’etichetta (non consigliato in quanto comporta una struttura di controllo complicata e codice Spaghetti)

 List: while(counter < 50) { userInput += userInput; counter++; if(userInput > 10000) { break List; } } 

3- In 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- In Ternary Operator

 document.getElementById("demo").innerHTML = age>18? "True" : "False"; 

Uno stupido errore che ho fatto un po ‘di 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.