Controllare se una variabile non è definita restituisce la variabile non definita - javascript

Ho una dichiarazione nel mio codice:

if(!(typeof options.duration[i] === "undefined"))

L'ho scritto correttamente, sembra che non ci siano errori ma la console lancia un errore che:

TypeError: options.duration is undefined

Non dovrebbe mostrare questo errore. Non ha alcun senso.

risposte:

3 per risposta № 1

La variabile options.duration non è definito, quindi accedi all'elemento i da questo risulterà in questo errore. Forse prova:

if(typeof options.duration !== "undefined")

O se è necessario controllare entrambi options.duration e options.duration[i], provare

if(typeof options.duration !== "undefined" &&
typeof options.duration[i] !== "undefined")

1 per risposta № 2

Perché il tuo test abbia successo, la matrice options.duration deve anche essere definito.


1 per risposta № 3

Si ottiene questo errore perché il duration la proprietà non esiste.

Controlla se la proprietà esiste prima di provare a controllare gli elementi in essa contenuti:

if("duration" in options && typeof options.duration[i] !== "undefined")

domande correlate
Menu