1

次の構文のif(variable)句は、例外を回避するために、リスト/配列が null/未定義ではないかどうかをチェックします。

if (list)
    for (var k in list) {
       ...

if (array)
    for (var i = array.length; i >= 0; i--) {
        ...

しかし、JS 構文では次のような式を使用できます

null || []
undefined || {}

したがって、コードを 1 行短くしても、配列/オブジェクトをチェックできます。

for (var k in obj || {}) {
    ...

for (var i = (array || {}).length; i >= 0; i--) {
    ...

問題は基本的に次のとおりです。null/undefined || []/{}式はすべてのブラウザーで後者を返しますか?

編集:for (var k in list || {})配列(角括弧)が反復を引き起こし、例外がスローされるため、中括弧が反復に適していることがわかりました。

4

2 に答える 2

3

はい、nullundefined0、は、ブール値として扱われると (演算子が行う)、""すべて に解決されるため、すべてのブラウザーは後者を使用します。この動作は完全に安全です。false||

于 2009-12-10T08:56:38.527 に答える
2

はい

15文字制限が嫌いです。

于 2009-12-10T08:57:18.753 に答える