Odpowiedzi:
var o = {
r: 'some value',
t: 'some other value'
};
jest funkcjonalnie równoważny z
var o = new Object();
o.r = 'some value';
o.t = 'some other value';
Do oznaczenia stwierdzenia można również użyć dwukropka. na przykład
var i = 100, j = 100;
outerloop:
while(i>0) {
while(j>0) {
j++
if(j>50) {
break outerloop;
}
}
i++
}
Zapominacie, że dwukropek jest również używany w operatorze trójskładnikowym (chociaż nie wiem, czy jquery używa go do tego celu).
operator trójskładnikowy jest formą wyrażenia (wyrażenia zwracają wartość) instrukcji jeśli / to. jest używany w ten sposób:
var result = (condition) ? (value1) : (value2) ;
Operator trójskładnikowy może być również użyty do wywołania efektów ubocznych, tak jak gdyby / wtedy, ale jest to głęboko zła praktyka.
Zasadniczo znak „:” jest ogranicznikiem dla par klucz-wartość. W twoim przykładzie jest to notacja JavaScript Object Literal.
W javascript obiekty są definiowane za pomocą dwukropka ograniczającego identyfikator właściwości i jej wartość, dzięki czemu można mieć:
return {
Property1 : 125,
Property2 : "something",
Method1 : function() { /* do nothing */ },
array: [5, 3, 6, 7]
};
a następnie użyj go jak:
var o = {
property1 : 125,
property2 : "something",
method1 : function() { /* do nothing */ },
array: [5, 3, 6, 7]
};
alert(o.property1); // Will display "125"
Podzbiór tego jest również znany jako JSON (JavaScript Object Notation), który jest przydatny w wywołaniach AJAX, ponieważ jest kompaktowy i szybki do przeanalizowania w językach po stronie serwera, a JavaScript może łatwo zdeserializować ciąg JSON do obiektu.
// The parenthesis '(' & ')' around the object are important here
var o = eval('(' + "{key: \"value\"}" + ')');
Możesz również umieścić klucz w cudzysłowie, jeśli zawiera jakiś specjalny znak lub spacje, ale nie polecałbym tego, ponieważ po prostu utrudnia to pracę.
Należy pamiętać, że JavaScript Object Literal Notation w języku JavaScript różni się od standardu JSON do przekazywania wiadomości. Główna różnica między tymi 2 polega na tym, że funkcje i konstruktory nie są częścią standardu JSON , ale są dozwolone w literałach obiektów JS.
Jest częścią składni literału obiektowego. Podstawowy format to:
var obj = { field_name: "field value", other_field: 42 };
Następnie możesz uzyskać dostęp do tych wartości za pomocą:
obj.field_name; // -> "field value"
obj["field_name"]; // -> "field value"
Możesz nawet mieć funkcje jako wartości, w zasadzie podając metody obiektu:
obj['func'] = function(a) { return 5 + a;};
obj.func(4); // -> 9
Może służyć do wyświetlania listy obiektów w zmiennej. Jest również używany w skrócie w zdaniu if:
var something = {face: 'hello',man: 'hey',go: 'sup'};
I tak to nazywam
alert(something.man);
Również zdanie if:
function something() {
(some) ? doathing() : dostuff(); // if some = true doathing();, else dostuff();
}
Nie zapominajmy o instrukcji switch, w której dwukropek jest używany po każdym „przypadku”.
Są to zazwyczaj scenariusze, w których dwukropek „:” jest używany w JavaScript
1- Deklarowanie i inicjowanie obiektu
var Car = {model:"2015", color:"blue"}; //car object with model and color properties
2- Ustawianie etykiety (niezalecane, ponieważ powoduje skomplikowaną strukturę kontroli i kod 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- Operator trójskładnikowy
document.getElementById("demo").innerHTML = age>18? "True" : "False";
||. Przykład: var a = false, b = a || 'Default value';odpowiadavar a = false, b = a : 'Default value';
To jest JSON lub JavaScript Object Notation. Jest to szybki sposób opisu obiektu lub mapy skrótów. Rzecz przed dwukropkiem to nazwa właściwości, a rzecz po dwukropku to jej wartość. W tym przykładzie istnieje właściwość „r”, której wartość jest dowolną wartością zmiennej r. To samo dotyczy t.
Jeden głupi błąd, który popełniłem jakiś czas temu, który może pomóc niektórym ludziom.
Pamiętaj, że jeśli używasz „:” w takim wydarzeniu, wartość nie zmieni się
var ondrag = (function(event, ui) {
...
nub0x: event.target.offsetLeft + event.target.clientWidth/2;
nub0y = event.target.offsetTop + event.target.clientHeight/2;
...
});
Zatem „nub0x” zainicjuje się przy pierwszym zdarzeniu, które ma miejsce i nigdy nie zmieni swojej wartości. Ale „nub0y” zmieni się podczas następnych wydarzeń.
event.target.offsetLeft + event.target.clientWidth/2;jest uruchamiana za każdym razem, gdy wywoływana jest metoda ondrag, ale nigdy nie przypisuj wartości donub0x
:jest traktowane tak, jakby to było ||. W związku z tym event.target.offsetLeft + event.target.clientWidth/2;będzie wyzwalany tylko za każdym razem, gdy podane nub0xjest równe fałszowi.
Innym zastosowaniem dwukropka w JavaScript jest zmiana nazwy zmiennej, czyli:
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";
Jest to przydatne, jeśli używasz biblioteki innej firmy, która zwraca wartości o niewygodnych / długich nazwach zmiennych, których nazwę chcesz zmienić w kodzie.