0

コードは次のとおりです。

if(!typeOf(node.parentNode)) return null;

エラーは次のとおりです。

Uncaught TypeError: Cannot read property 'parentNode' of null

null/未定義/falseかどうかをテストしようとしています。しかし、それは私にエラーを送り続けます。

if ステートメントでエラーが発生しないようにテストするにはどうすればよいですか?

4

4 に答える 4

2

オブジェクト参照もテストします。

if (!node || !node.parentNode) return null;

「ノード」が実際には何でもかまいません (オブジェクト参照に加えて文字列や数値など)、型もテストする必要があります。

于 2013-10-30T16:00:28.807 に答える
1

最初かどうかを確認する必要nodeがありnullます。

if(!node || !node.parentNode) {
    return null;
}

これは、「短絡」評価とも呼ばれます。それが であること!nodeがわかると、演算子は OR( ) であり、OR では入力の 1 つが である場合、結果は のみになるtrueため、ブロック内にあるものをすぐに実行します。||truetrue

また、typeofキーワードです。関数ではありません (ただし、コードは引き続き機能します)。

于 2013-10-30T16:01:38.350 に答える
-1
try {
        if (!typeOf(node.parentNode)) return null;
    } catch (err) {
        console.log(err);
    }
于 2013-10-30T16:02:54.643 に答える