2014-09-25 89 views
8

检查myvar javascript variable === false的最佳方法是什么?(也可能未定义)。检查变量是否为假,但不是真或不确定

if (myvar === false) 

将被罚款,但myvar它可能是不确定的。只有false的值是可以接受的,而不是未定义的。

任何短于if (typeof myvar !== "undefined" && myvar === false)

+0

*仅*'FALSE'或'undefined',或者你只是寻找任何 “falsy” 值,这将只是'如果(MYVAR)...'? – adeneo 2014-09-25 19:37:59

+0

你应该工作得很好,或者如果你真的想明确,那么'if((myvar === false)&&(myvar!== undefined)){' – PlantTheIdea 2014-09-25 19:38:53

回答

17

如果变量是声明则:

if (myvar === false) { 

将正常工作。 ===将不会考虑false未定义。

如果是undefined未声明,那么您应该在尝试使用它之前检查它的类型(否则您将得到一个引用错误)。

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

也就是说,如果您打算尝试使用该变量,则应确保始终声明该变量。

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

if (myvar !== undefined && myvar === false)怎么样?

+0

'undefined'可以重新定义为其他值,所以你应该总是使用'typeof'或者定义一个本地'undefined'。 – 2014-09-25 19:39:25

+0

@Derek朕会功夫不再适用于现代浏览器。 – 2014-09-25 19:41:15

+0

@IngoBürk - 互联网上的大多数用户没有现代浏览器,特别是商业环境中的电脑。 – 2014-09-25 19:42:34

1
if(typeof myvar === 'boolean' && !myvar) 
相关问题