これは厄介なものです(私のコードではありませんが、私はそれに固執しています)。関数は、グローバルに定義された変数に依存します。
function variableIssues(){
alert(someGlobalString); // alerts "foo"
}
このグローバルに定義された変数は、である場合がありundefined
ます。この場合、さらに処理するためにキャストします。関数が変更されました。
function variableIssues(){
alert(someGlobalString); // undefined
if (!someGlobalString){
var someGlobalString = "bar";
}
}
ただし、この関数が定義されたsomeGlobalStringで呼び出された場合、JavaScriptの評価により、変数はに設定されundefined
、常にに設定されbar
ます。
function variableIssues(){
alert(someGlobalString); // "should be foo, but javascript evaluates a
// variable declaration it becomes undefined"
if (!someGlobalString){
var someGlobalString = "bar";
}
}
undefined
グローバル変数の扱い方について、いくつか提案をお願いします。何か案は?