W celu ochrony mojego kodu dostępu zmiennych niezgłoszonych używamZamówienie ewaluacji w instrukcji if w JavaScript
if (typeof myVar != 'undefined')
Działa to dobrze, ale chciałbym, aby trzymać inny if w nim. Coś jak przekształcenie to:
if (typeof myVar != 'undefined'){
if (myVar == "test"){}
}
do tego:
if (typeof myVar != 'undefined' && myVar == "test")
Zważywszy myVar
może być zdefiniowana, to ten ostatni kod bezpieczny w każdym przypadku użycia i każdej przeglądarce?
Czy jest możliwe, że różne stwierdzenia wewnątrz if()
nie są oceniane w kolejności, w jakiej zostały napisane?
Czy mogę założyć, że myVar == "test"
będzie nigdy być wykonane, jeśli myVar
jest niezdefiniowane?
Tak, możesz. Lepszym podejściem byłoby tutaj użycie 'if (myVar && myVar ==" test ")' tutaj. – user1983983
Operator tak && jest operatorem zwarcia, więc inny warunek nie będzie sprawdzany, jeśli pierwszy warunek jest fałszywy – Shadow
tak, ale kod ulega awarii podczas próby uzyskania dostępu do niezdefiniowanej zmiennej – Saturnix