6

私はこのようなJavaScriptコードを持っています=>

(function(){
    document.getElementById("element").onclick = function(){
        var r = confirm("Are you sure ?");
        if (r){
            return true;
        } else {
            return false;
        }
    }
})();

このスクリプトは機能しますが、匿名関数が常に値を返すとは限らないという厳密な警告についての通知を受け取るだけです

私はそれが何を意味するのか興味があります.どうすればこれを防ぐことができますか?それは何か問題を引き起こしますか? アイデアはありますか?ありがとう :)

4

2 に答える 2

8

無名関数のためではなく、elsewithreturnが冗長だからです。return は関数を終了するので必要ありません。ifステートメントが真でない場合、デフォルトreturnが実行されます。

(function(){
    document.getElementById("element").onclick = function(){
        var r = confirm("Are you sure ?");
        if (r){
            return true;
        }
        return false;
    }
})();

編集:

星雲が言ったように、これはさらに短くすることができます:

(function(){
    document.getElementById("element").onclick = function(){
        return confirm("Are you sure ?");
    }
})();
于 2012-07-27T22:58:08.213 に答える
6

実際には、スクリプトで厳密モードstrict warningが有効になっているために取得していますが、スクリプトで「厳密な使用」が使用されていない場合は、コメントで使用していると思いますが、おそらくサポートに必要なものがインストールされていると思いますJavaScript デバッグのブラウザ側コンポーネント。Komodo IDEFirefox Extension for Debugging

その場合、有効または無効にできる設定がいくつかあります。無効にするstrict mode warningsには、Edit Menu > Preferences > Javascript (カテゴリから) に移動し、 Enable Strict Warning Messages のチェックを外します。それだけです。しかし、使用strict modeは良いプログラミングの実践です。以下はあなたを助けるためのスクリーンショットです

ここに画像の説明を入力

于 2012-07-27T23:58:36.547 に答える