diff if语句

Art*_*ves 4 actionscript-3

我在as3中几乎是新手,我带来了一个双重声明,声明'如果'吼叫,做同样的想法?

public function get products(a:Object){
    if(a){
     // smtg
    }
    if(null!=a){
     // smtg
    }
}
Run Code Online (Sandbox Code Playgroud)

pok*_*oke 5

不,他们不一样.虽然它们在许多情况下表现相似,但是存在很大差异,第一种方法评估值,而第二种方法只检查值是否为空.

你可以看到这个例子的不同之处:

function test ( a:Object ):void
{
    if ( a )
        trace( "A" );
    if ( a != null )
        trace( "B" );
}

test( false ); // B
test( "" ); // B
test( 0 ); // B
test( true ); // A & B
// ...
Run Code Online (Sandbox Code Playgroud)

评估为false的所有值都将产生不同的结果.