javascript : || operator dublu operator de țeavă alternativă care testează doar nedefinit [duplicat] (Programare, Javascript, Operatori)

frenchone a intrebat.
a intrebat.

Există vreo notație mai scurtă pentru următorul test?

(typeof x != "undefined") ? x : y;

Un fel de x || y dar care operează pe nedefinit numai (și nu valori falși)

Ceva de genul ?? din C#

Comentarii

  • Nu, nu există un astfel de operator. –  > Por Pointy.
  • De ce? este foarte important să se scurteze codul în continuare? –  > Por mplungjan.
  • || nu este o țeavă dublă, ci doar un „OR” logic –  > Por CharybdeBE.
  • Definiți o funcție? const foo = (x, y) => (typeof x != "undefined") ? x : y; ... foo(x, y). –  > Por Felix Kling.
  • Din păcate, nu există o modalitate mai scurtă de a evalua doar undefined. –  > Por Emeeus.
2 răspunsuri
frenchone

De fapt, întrebarea ar trebui reformulată ca există un operator de coalizare null în javascript ?

Și răspunsul este Nu, nu acum, dar ar trebui să vină în curând. A se vedea propunerea aici și stadiul implementării aici.

Există un operator „null coalescing” în JavaScript?

Comentarii

  • Propuneri interesante –  > Por mplungjan.
Paul McBride

Dacă sunteți sigur că undefined nu va fi niciodată suprascris, puteți folosi ceva de genul x === undefined. Aceasta va returna fie true fie false pe care îl puteți testa.

Comentarii

  • (foo === nedefinit) va eșua dacă foo este nedefinit. (dar nu și dacă foo a fost setat ca fiind nedefinit foo = nedefinit) –  > Por frenchone.