2014-09-25 2 views
8

Was ist die beste Möglichkeit zu überprüfen, ob myvar Javascript variable === false oder nicht (es kann auch nicht definiert sein).Überprüfen Sie, ob die Variable falsch und nicht wahr oder nicht definiert ist

if (myvar === false) 

wäre in Ordnung, aber myvar könnte es nicht definiert sein. Nur false Wert ist akzeptabel, nicht undefiniert.

Alle kürzer als if (typeof myvar !== "undefined" && myvar === false)?

+0

* Nur * 'false' oder' undefined', oder suchen Sie einfach für jeden "falsy" -Wert, der gerade sein würde 'if (myvar) ...'? – adeneo

+0

was du solltest sollte gut funktionieren, oder wenn du wirklich explizit sein wolltest dann 'if ((myvar === false) && (myvar! == undefined)) {' – PlantTheIdea

Antwort

17

Wenn die Variable erklärt dann:

if (myvar === false) { 

gut funktionieren wird. === berücksichtigt false nicht undefiniert.

Wenn es undefinedund nicht angemeldeten, dann sollten Sie den Typ überprüfen, bevor Sie versuchen, es zu benutzen (andernfalls erhalten Sie einen Referenzfehler erhalten).

if(typeof myvar === 'boolean' && myvar === false) { 

Das heißt, sollten Sie sicherstellen, dass die Variable immer, wenn Sie es verwenden möchten deklariert wird, um zu versuchen.

var myvar; 
// ... 
// some code that may or may not assign a value to myvar 
// ... 
if (myvar === false) { 
1

Wie wäre es mit if (myvar !== undefined && myvar === false)?

+0

'undefined' kann auf einige andere Werte umdefiniert werden, Sie sollten also immer 'typeof' verwenden oder ein lokales' undefined' definieren. –

+0

@Derek 朕 會 功夫 Nicht mehr in modernen Browsern. –

+0

@ IngoBürk - Die meisten Benutzer im Internet haben keine modernen Browser, insbesondere Computer in kommerziellen Umgebungen. –

1
if(typeof myvar === 'boolean' && !myvar) 
Verwandte Themen