6

グローバルの概念は固まり始めています。関数外の変数はグローバルですよね?変数が内$(document).ready( function() { *code* } );に含まれている場合、それらはグローバルと見なされますか?

頻繁に使用する配列を、その配列を使用する関数に配置するための回避策を見つけましたが、それが理にかなっている場合は、基本的にHTMLコンテンツをグローバルとして使用しています(たとえば、div内のテキストを使用してそれを働き)。これは、人々が通常、絶えず変更する/頻繁に参照される変数について行う方法ですか?

それらがグローバルでない場合でも、グッドプラクティスを開発するために関数内に変数を含める必要がありますか?

4

2 に答える 2

4

いいえ、関数内でローカルスコープと見なされます。

JavaScriptのスコープについてはこちらをご覧ください:https ://stackoverflow.com/a/500459/1538708

関数を介して変数をスコープすることは、特にミニマライザーを介してコードを実行する場合は、良い習慣です。

于 2012-12-20T16:28:44.160 に答える
3

に含まれる変数$(document).readyはグローバルではありません。関数で変数を宣言すると、そのスコープは関数になり、関数が終了すると変数は存在しなくなります。

var myGlobal = "foo";

$(document).ready(function(){
    var myVar = 42; // myVar will only exist in this scope
    $.myVar = 42; // $.myVar will be accessible anywhere since you have access to '$' object
    // care, this variable will be accessible anywhere
    // if you declare a variable with the same name but omit to add the "var" first, it will work without any error (unless you have "use strict")
    myGlobal = "bar";
});

グローバル変数はできるだけ避けてください。必要なものがすべて含まれている「神オブジェクト」を作成することに陥らないでください。コードを読んだり理解したりするのが難しくなります。

あなたも見ることができ"use strict"ます。

于 2012-12-20T16:41:56.480 に答える