私は不思議に思っていましたが、return文がない関数(またはreturn文を使わない)はfalseと完全に等しい値を返しますか?例えばreturnステートメントがないとjavascript関数は何を返しますか?
:
function foo(){};
!!foo();
これは放火犯で実行された場合はfalseを返す必要があります(しかし、私はただのfoo()と呼ばれる場合は、何も返しません。)。
ありがとうございます!
ジェイソン
私は不思議に思っていましたが、return文がない関数(またはreturn文を使わない)はfalseと完全に等しい値を返しますか?例えばreturnステートメントがないとjavascript関数は何を返しますか?
:
function foo(){};
!!foo();
これは放火犯で実行された場合はfalseを返す必要があります(しかし、私はただのfoo()と呼ばれる場合は、何も返しません。)。
ありがとうございます!
ジェイソン
(1を押すことなくその実行を終了するか、1)return文のない機能はundefined
を返します。
undefined
の値で単項否定演算子を2回使用すると、false
が得られます。
Firebugは未定義の式の結果を出力しないため、コンソールに何も表示されません(コンソールにundefined;
と入力すれば何も表示されません)。
しかし、あなたが直接console.log
関数を呼び出し、そしてあなたがそれを見ることができます場合:
function foo(){}
console.log(foo()); // will show 'undefined'
この回答は正しいです。 FirebugコンソールまたはSafariコンソールを使用して、javascriptをインタラクティブにテストできます。 –
または、アドレスバーに次のようにコピーしてください:javascript:alert(function(){}()); – Marius
<html>
<body>
<script>
function a() {}
alert(a());
</script>
</body>
</html>
調べるために、放火犯のコンソールでこれを試してみてください。
alert((function(){})());
JavaScriptをも 値が存在しないことを示す第2の値を有する。未定義の値は、より深い種類の不在を表します。これは、初期化されていない変数の値 と、存在しないオブジェクトの値 の値を照会するときに得られる値です。定義されていない の値は、戻り値がない関数、戻り値が の関数パラメーターの値が である関数によっても返されます。定義されていないグローバル変数です。 – Xsi