Kolejność wykonywania zapyań w ifie

0

Witam.
Mam pytanie czy w takim wypadku:

 if (timeModel !== undefined && timeModel.duration > '00:00' ) { /* dalszy kod */ }

mogę być pewny że jeśli timeModel === undefined to nigdy (na każdym silniku javascriptowy) nie zostanie sprawdzona poprawności timeModel.duration > '00:00'. Jeśli by się tak stało dostałbym że timeModel jest undefined i błąd w konsoli.
Na chromie i firefoxie wszystko jest ok ale wole zapytać się wyjadaczy czy wszędzie logika sprawdzania ifów jest taka sama.

3

Fachowo nazywa się to short-circuit evaluation i tak, jest gwarantowane w każdej implementacji.

1

Dziękuje za fachową odpowiedź :)

0

Btw dał bym raczej:

if (timeModel && timeModel.duration > '00:00' ) { /* dalszy kod */ }

bo to co masz wywali się jak będzie tam null.

A tak w ogóle to zamiast takich sprawdzeń we właściwej logice dodałbym warstwę walidacji - jakiś JSON Schema, Joi, czy ręcznie napisaną funkcję jak to coś małego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1