2013-05-20 14 views
5

Żeglowałem po Internecie, szukając skrótowej notacji w języku JavaScript dla instrukcji if. TYLKO jeśli, nie indziej. Moje pytanie: czy istnieje? np:JavaScript w przypadku krótkiej notacji

(i === 0) ? onlyMyTrueValue; 

Jedyny fragment wydaje mi się znaleźć jest to jedno:

(i === 0) ? myTrueValue : myFalseValue; 
+3

Ocena zwarć Google. –

+2

Skrócony sposób na napisanie instrukcji 'if' to' if (i === 0) somevar = anyval; 'ale powinieneś pozwolić ministrowi JS na takie działanie. – zzzzBov

Odpowiedz

14

można zrobić:

(i === 0) && onlyMyTrueValue; 

Po prawej stronie powyższego zestawienia będzie wykonać tylko wtedy, gdy lewa strona przechodzi.

+0

Ta cecha JavaScriptu bardzo mnie zepsuła. – ajp15243

+0

Chciałbym wiedzieć o tym, +1 – tymeJV

+0

@ ajp15243 - Nie mogę odmówić mojej pobłażliwości, albo; ;-) – techfoobar

11

Możesz zrobić (i === 0) && onlyMyTrueValue;, ale nie powinieneś, ze względu na czytelność.

Porównaj oryginalny:

(i === 0) ? onlyMyTrueValue; 

A zwykły stary jeżeli:

if (i === 0) onlyMyTrueValue; 

To tylko jeden znak, a identyczną ilość znaków do metody &&. Idź z czytelnym wyborem.

+2

+1 za sugerowanie, że czytelność jest królem. Chociaż znajduję sytuację taką jak 'var foo = bar || []; 'jest pomocny przy przypisywaniu wartości domyślnych, jeśli wartość, którą próbujesz przypisać (' bar') jest podobna do 'undefined' lub' null', którą chcesz odfiltrować. – ajp15243

+2

Czytelność jest ** najbardziej ** ważną rzeczą podczas czytania rozgałęzienia kodu przez 99,9% czasu. Sposób zwarcia jest mniej czytelny. Jeśli martwisz się o rozmiar pliku, najpierw przeprowadź kod przez kompilator zamykający, zminimalizuj, jeśli chodzi o zwarcia. –

+1

@nathanhayfield Właśnie cytował OP i porównał z tą hipotetyczną składnią. – 1983

Powiązane problemy