1

私はJavaScriptの初心者のようなものです。以下のコードが1代わりに戻る理由がよくわかりません10:

var a = 1;
function b() {
    a = 10;
    return;
    function a() {}
}
b();
alert(a);

実行中のコード: http://jsfiddle.net/smMtU/

function a() {}を再設定すると、期待どおりに戻ります10。このコードは、JavaScript でのスコープと巻き上げの概念を説明するために、この投稿から取得したものです。この投稿を読んでいるときに、何かが足りないのではないでしょうか?

このコードの背後にある概念を指摘できる人はいますか?

4

2 に答える 2

7

巻き上げのため、コードは次と同等です

var a = 1;
function b() {
    var a = function() {};
    a = 10;
}
b();
alert(a);

内部bでは、外部ではなく内部を変更していますa

于 2013-04-15T17:19:06.257 に答える