31

時々この問題に遭遇しましたが、何が原因なのかまだわかりません。

ページに次のスクリプトがあります。

$(function(){
    var value = "10";
});

しかし、ブラウザーには「ReferenceError: 値が定義されていません」と表示されます。ただし、ブラウザコンソールに移動して次のいずれかを入力すると

10

また

var value = "10";

どちらも 10 を返す可能性があります。私のスクリプトの問題は何ですか?

4

3 に答える 3

44

クロージャー内で宣言されているため、そこでのみアクセスできます。グローバルにアクセスできる変数が必要な場合は、以下を削除できますvar

$(function(){
    value = "10";
});
value; // "10"

これは、書き込みに相当しますwindow.value = "10";

于 2013-07-11T01:22:22.113 に答える
1

次のコードで (関数 init で) エラーが発生しました。

"use strict" ;

var hdr ;

function init(){ // called on load
    hdr = document.getElementById("hdr");
}

... Samsung Galaxy Fame でストック ブラウザを使用している場合 (良いテスターに​​なるクズ電話) - userAgent; Mozilla/5.0 (Linux; U; Android 4.1.2; en-gb; GT-S6810P Build/JZO54K) AppleWebKit/534.30 (Gecko のような KHTML) バージョン/4.0 Mobile Safari/534.30

同じコードは、古い HTC フォンのストック ブラウザである userAgent を含めようとした他の場所でも機能します。Mozilla/5.0 (Linux; U; Android 2.3.5; en-gb; HTC_WildfireS_A510e Build/GRJ90) AppleWebKit/533.1 (Gecko のような KHTML) バージョン/4.0 モバイル Safari/533.1

これに対する修正は変更することでした

var hdr ;

var hdr = null ;
于 2017-01-11T15:25:28.280 に答える