Что проходит как true (или false) в операторе if для переменной - PullRequest
4 голосов
/ 27 июня 2011

В этом коде, какие значения myVar будут вести себя как true и false?

if(myVar){}

Например, в JavaScript следующие значения являются ложными

null
undefined
0
''
false

Ответы [ 2 ]

11 голосов
/ 27 июня 2011

Объект

false, если экземпляр null;true в противном случае

Строка

false, если значение null или пустая строка "";true в противном случае

Число, int или uint

false, если значение равно NaN или 0;true в противном случае

ноль

false

С здесь .

1 голос
/ 27 июня 2011

Если (myVar) является логическим значением, тогда оно, очевидно, пройдет, если это правда, и потерпит неудачу, если нет.Если bool никогда не инициализировался (например, var myBool:Boolean; вместо var myBool:Boolean = true), то по умолчанию это false.Эта та же самая концепция применима к встроенным объектам, таким как Number, int и т. Д. В значительной степени для всего остального, она будет проходить как истина, только если объект был инициализирован через конструктор объекта или через прямое присваивание, например так:

var a:MovieClip = new MovieClip();

var b:MovieClip = a;
...