私はJavaScriptを初めて使いました。なぜなら、「z」がなぜ定義されていないのか理解しようとしています。なぜこれは「未定義」ですか?
var z = functionWithParameters(4, 3);
function functionWithParameters(x, y) {
if (typeof z !== 'undefined') {
document.getElementById("functionWithParameters").innerHTML = z;
console.log('inside function: ' + z);
console.log('inside function: z is a ' + typeof z);
}
console.log('before return: z = ' + z);
return x * y;
}
console.log('outside function: z = ' + z);
<p id = "functionWithParameters"></p>
<script>
functionWithParameters(4, 3);
</script>
私は、コードを実行した場合はそのまま、何もコメントせずに、それはと結果:私は削除した場合
before return: z = undefined
outside function: z = 12
inside function: 12
inside function: z is a number
before return: z = 12
:!(typeof演算Z == '未定義の' の場合)、コード結果は次のようになります。
inside function: undefined
inside function: z is a undefined
before return: z = undefined
TypeError: document.getElementById(...) is null[Learn More] (from Firefox),
および行:console.log( 'outsi機能:z = '+ z)。実行されません。私は関数がreturnステートメントを持っているからですが、戻り値をコメントアウトしても結果は変わらないからです。
これを理解する助けがあれば素晴らしいと思います。 フィードバックいただきありがとうございます。
私の推測は、バリホイストです。したがって、 'z'は値が与えられず、未定義です。 – Li357
論理は意味をなさない。関数の返り値に依存する変数は、その関数の中でどのように定義できますか? – charlietfl
@charlietflこの例についてはわかりませんが、繰り返し関係アルゴリズムでは意味があります。 – Linek