0
var session = {}
session.query = {}
session.query.username = "foo";

if( session.query.username )
    console.log('surname exists');

if( session.query2.username )
    console.log('surname exists');

このコードは次の例外をスローします: " TypeError: 未定義のプロパティ 'query2' を読み取れません"

stackoverflow で検索し、この解決策を見つけました:

...
if( session && session.query2 && session.query2.username )
    console.log('surname exists')

しかし、これは非常に長く、オブジェクトのコントロールが非常にネストされているため、このメソッドを使用できません。私が使用できる短い方法はありますか?

4

1 に答える 1

0

これはあなたのために働くことができます:

try {
    session.query.username &&
    console.log('Username exists');
} catch () {
    console.log('Username does not exist');
}

非常に深いパスの場合 (またはそれらの多くをテストする必要がある場合) は、短くなる可能性があります。

于 2013-04-13T21:14:03.143 に答える