Ответ 1
var o = {
r: 'some value',
t: 'some other value'
};
функционально эквивалентно
var o = new Object();
o.r = 'some value';
o.t = 'some other value';
Я изучаю JavaScript и, просматривая библиотеку jQuery, я вижу, что :
(двоеточие) используется много. Для чего это используется в 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'
};
функционально эквивалентно
var o = new Object();
o.r = 'some value';
o.t = 'some other value';
Кроме того, двоеточие можно использовать для обозначения оператора. например
var i = 100, j = 100;
outerloop:
while(i>0) {
while(j>0) {
j++
if(j>50) {
break outerloop;
}
}
i++
}
Вы, ребята, забываете, что двоеточие также используется в тройном операторе (хотя я не знаю, использует ли jquery для этой цели).
тернарный оператор представляет собой форму выражения (выражения возвращают значение) оператора if/then. он используется следующим образом:
var result = (condition) ? (value1) : (value2) ;
Тернарный оператор также может использоваться для создания побочных эффектов, как если бы это было тогда, но это глубоко вредная практика.
Параметр ":" является разделителем для пар значений ключей в основном. В вашем примере это условное обозначение объекта Javascript.
В javascript объекты определяются с двоеточием, ограничивающим идентификатор для свойства, и его значением, чтобы вы могли иметь следующее:
return {
Property1 : 125,
Property2 : "something",
Method1 : function() { /* do nothing */ },
array: [5, 3, 6, 7]
};
а затем используйте его как:
var o = {
property1 : 125,
property2 : "something",
method1 : function() { /* do nothing */ },
array: [5, 3, 6, 7]
};
alert(o.property1); // Will display "125"
Подмножество этого также известно как JSON (Javascript Object Notation), которое полезно в вызовах AJAX, потому что оно компактно и быстро анализирует серверные языки, и Javascript может легко де-сериализовать строку JSON в объект.
// The parenthesis '(' & ')' around the object are important here
var o = eval('(' + "{key: \"value\"}" + ')');
Вы также можете поместить ключ внутри кавычек, если он содержит какой-то особый символ или пробелы, но я бы не рекомендовал это, потому что это просто затрудняет работу с.
Имейте в виду, что JavaScript Object Literal Notation на языке JavaScript отличается от стандарта JSON для передачи сообщений. Основное отличие между ними состоит в том, что функции и конструкторы не являются частью стандарта JSON, но допускаются в литералах объектов JS.
Это часть синтаксиса литерала объекта. Основной формат:
var obj = { field_name: "field value", other_field: 42 };
Затем вы можете получить доступ к этим значениям с помощью:
obj.field_name; // -> "field value"
obj["field_name"]; // -> "field value"
Вы можете даже иметь функции как значения, в основном предоставляя вам методы объекта:
obj['func'] = function(a) { return 5 + a;};
obj.func(4); // -> 9
Его можно использовать для отображения объектов в переменной. Кроме того, он используется немного в сокращении предложения if:
var something = {face: 'hello',man: 'hey',go: 'sup'};
И называя это так
alert(something.man);
Также предложение if:
function something() {
(some) ? doathing() : dostuff(); // if some = true doathing();, else dostuff();
}
Не забывайте оператор switch, где двоеточие используется после каждого "случая".
Это JSON или JavaScript Object Notation. Это быстрый способ описания объекта или хэш-карты. Вещь перед двоеточием - это имя свойства, а вещь после двоеточия - ее ценность. Итак, в этом примере есть свойство "r", значение которого равно переменной r. То же самое для t.
Это, как правило, сценарии, в которых двоеточие ":" используется в JavaScript
1- Объявление и инициализация объекта
var Car = {model:"2015", color:"blue"}; //car object with model and color properties
2- Установка метки (не рекомендуется, так как это приводит к сложной структуре управления и коду спагетти)
List:
while(counter < 50)
{
userInput += userInput;
counter++;
if(userInput > 10000)
{
break List;
}
}
3- В заявлении о смене
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- В тройном операторе
document.getElementById("demo").innerHTML = age>18? "True" : "False";
Одна глупая ошибка, которую я сделал некоторое время назад, что может помочь некоторым людям.
Имейте в виду, что если вы используете ":" в таком случае, значение не изменится
var ondrag = (function(event, ui) {
...
nub0x: event.target.offsetLeft + event.target.clientWidth/2;
nub0y = event.target.offsetTop + event.target.clientHeight/2;
...
});
Итак, "nub0x" будет инициализироваться первым событием, которое произойдет и никогда не изменит его значение. Но "nub0y" изменится во время следующих событий.