Yanıtlar:
var o = {
r: 'some value',
t: 'some other value'
};
işlevsel olarak eşittir
var o = new Object();
o.r = 'some value';
o.t = 'some other value';
Ayrıca, bir ifadeyi etiketlemek için iki nokta üst üste kullanılabilir. Örneğin
var i = 100, j = 100;
outerloop:
while(i>0) {
while(j>0) {
j++
if(j>50) {
break outerloop;
}
}
i++
}
Siz kolonun üçlü operatörde de kullanıldığını unutuyorsunuz (jquery'nin bunu bu amaçla kullanıp kullanmadığını bilmiyorum).
üçlü operatör, if / then ifadesinin bir ifade formudur (ifadeler bir değer döndürür). şu şekilde kullanılır:
var result = (condition) ? (value1) : (value2) ;
Üçlü bir operatör de tıpkı / o zamanki gibi yan etkiler üretmek için kullanılabilir, ancak bu son derece kötü bir uygulamadır.
':' Temel değer çiftleri için bir sınırlayıcıdır. Örneğinizde bir Javascript Nesnesi Değişmez gösterimidir.
Javascript'te, Objeler özelliği için tanımlayıcıyı sınırlayan iki nokta üst üste işareti ve değeri ile tanımlanır, böylece aşağıdakilere sahip olabilirsiniz:
return {
Property1 : 125,
Property2 : "something",
Method1 : function() { /* do nothing */ },
array: [5, 3, 6, 7]
};
ve sonra şöyle kullanın:
var o = {
property1 : 125,
property2 : "something",
method1 : function() { /* do nothing */ },
array: [5, 3, 6, 7]
};
alert(o.property1); // Will display "125"
Bunun bir alt kümesi, AJAX çağrılarında yararlı olan JSON (Javascript Nesne Notasyonu) olarak da bilinir, çünkü sunucu tarafı dillerinde ayrıştırmak için kompakt ve hızlıdır ve Javascript bir JSON dizesini bir nesneye kolayca serileştirebilir.
// The parenthesis '(' & ')' around the object are important here
var o = eval('(' + "{key: \"value\"}" + ')');
Ayrıca, bir tür özel karakter veya boşluk içeriyorsa anahtarı tırnak içine alabilirsiniz, ancak bunu tavsiye etmem çünkü işleri daha zorlaştırır.
JavaScript dilinde JavaScript Nesnesi Değişmez Gösteriminin mesaj iletimi için JSON standardından farklı olduğunu unutmayın . 2 arasındaki temel fark, işlevlerin ve yapıcıların JSON standardının bir parçası olmaması , ancak JS nesnesi değişmezlerinde izin verilmesidir.
Nesne değişmez sözdiziminin bir parçasıdır. Temel biçim:
var obj = { field_name: "field value", other_field: 42 };
Ardından bu değerlere aşağıdakilerle erişebilirsiniz:
obj.field_name; // -> "field value"
obj["field_name"]; // -> "field value"
Temel olarak size nesnenin yöntemlerini veren değer olarak işlevlere sahip olabilirsiniz:
obj['func'] = function(a) { return 5 + a;};
obj.func(4); // -> 9
Bir değişkendeki nesneleri listelemek için kullanılabilir. Ayrıca, bir if cümlesinin stenografisinde biraz kullanılır:
var something = {face: 'hello',man: 'hey',go: 'sup'};
Ve böyle diyorsun
alert(something.man);
Ayrıca if cümlesi:
function something() {
(some) ? doathing() : dostuff(); // if some = true doathing();, else dostuff();
}
Her "durumdan" sonra kolon kullanılan switch deyimini unutmayalım.
Bunlar genellikle JavaScript'te iki nokta üst üste ':' ifadesinin kullanıldığı senaryolardır
1- Bir Nesneyi Bildirme ve Başlatma
var Car = {model:"2015", color:"blue"}; //car object with model and color properties
2- Etiket Ayarlama (Karmaşık kontrol yapısı ve Spagetti kodu ile sonuçlandığı için önerilmez)
List:
while(counter < 50)
{
userInput += userInput;
counter++;
if(userInput > 10000)
{
break List;
}
}
3- Anahtar İfadesinde
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- Üçlü Operatörde
document.getElementById("demo").innerHTML = age>18? "True" : "False";
||
. Örnek: var a = false, b = a || 'Default value';
eşdeğerdirvar a = false, b = a : 'Default value';
Bu JSON veya JavaScript Nesne Gösterimi. Bir nesneyi veya karma haritayı tanımlamanın hızlı bir yoludur. İki nokta üst üste işaretinden önceki şey özellik adıdır ve iki nokta üst üste işaretinden sonraki şey değeridir. Yani bu örnekte, değeri r değişkenindeki her şey olan "r" özelliği vardır. Aynı şey t.
Bir süre önce yaptığım aptalca bir hata, bazı insanlara yardımcı olabilir.
Böyle bir olayda ":" kullanıyorsanız, değerin değişmeyeceğini unutmayın.
var ondrag = (function(event, ui) {
...
nub0x: event.target.offsetLeft + event.target.clientWidth/2;
nub0y = event.target.offsetTop + event.target.clientHeight/2;
...
});
Böylece "nub0x" gerçekleşen ilk olayla başlayacaktır ve değerini asla değiştirmeyecektir. Ancak "nub0y" sonraki etkinlikler sırasında değişecektir.
event.target.offsetLeft + event.target.clientWidth/2;
ondrag yönteminiz her çağrıldığında ifade çalışır, ancak değeri aslanub0x
:
sanki a ||
. Bu nedenle, event.target.offsetLeft + event.target.clientWidth/2;
yalnızca nub0x
false değerine eşitlendiğinde her tetiklenir .
JavaScript'te iki nokta üst üste kullanımı bir değişkeni yeniden adlandırmaktır, yani:
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";
Kodunuzda yeniden adlandırmak istediğiniz garip / uzun değişken adlarına sahip değerleri döndüren bir üçüncü taraf kitaplığı kullanıyorsanız bu kullanışlıdır.