wtfjs numaralı telefondan, aşağıdakilerin yasal bir javascript olduğunu tespit ettim.Javascript "tuple" notasyonu: amacı nedir?
",,," == Array((null,'cool',false,NaN,4)); // true
argüman (null,'cool',false,NaN,4)
bana bir tuplea gibi görünüyor, ama javascript dizilerini yok!
Javascript konsolumdaki bazı hızlı sınamalar aşağıdakileri verir.
var t = (null,'cool',false,NaN,4); // t = 4
(null,'cool',false,NaN,4) === 4; // true
(alert('hello'), 42); // shows the alert and returns 42
sadece son ifadenin değerini döndürür tabloların noktalı virgül ;
ayrılmış listesi gibi aynen çalıştığı görülüyor.
Bu sözdizimini ve semantiklerini açıklayan bir yer var mı? Neden var, yani ne zaman kullanılmalı?
Virüs operatörüdür: http://javascriptweblog.wordpress.com/2011/04/04/the-javascript-comma-operator/ – Lepidosteus
Virgül operatörü ayrıca bir dizi işlevi çalıştırmak için kullanılabilir (ab) Üçlü bir dalın içinde, son ifadenin sonucunu yine de döndüreceği gibi: 'var a = isTrue? (b = f (c), g (b)): (b = g (c), f (b)) '. Nadiren bilge, ancak okunabilirlik üzerinde çok özlü kod tercih edilirse veya hızlı hata ayıklama amaçları için bazen yararlıdır. – Fx32
Bu, JavaScript'te bir 'ifade' olarak adlandırılır; bu, küçük bir rol oynasa da, yalnızca virgül operatörünün bir etkisi değildir; Bu ifade, virgül operatörü nedeniyle çözümlendi. Değerlendirilen herhangi bir ifadenin herhangi bir değişken değişkenine değer atayabilirsiniz. Bu ifade tanımlanmamış olsa bile. – Relic