if(){
var1 = "some html"
}
if(){
console.log(var1);
}
是var1
未定义的,但我认为不使用 var makevar1
成为全局变量?
就像不将变量声明为var var1
if(){
var1 = "some html"
}
if(){
console.log(var1);
}
是var1
未定义的,但我认为不使用 var makevar1
成为全局变量?
就像不将变量声明为var var1
正如菲利克斯克林所说
JS只有函数作用域,没有块作用域
考虑这个例子:
前 #1
function Scope1(){
var1 = "1"; // window.var1 = "1"
}
function Scope2(){
var1 = "2"; // window.var1 = "2"
}
function Scope3(){
var var1 = "3"; // var1 = "3" local variable for the Scope3 function
// window.var1 and var1 are different variables
}
Scope1();
console.log(var1); // returns 1
Scope2();
console.log(var1); // returns 2
Scope3();
console.log(var1); // returns 2
前 #2
if(true) {
var1 = "1"; // window.var1 = "1"
}
if(true){
console.log(var1); // returns 1
var1 = "2"; // window.var1 = "2"
}
console.log(var1); // returns 2
前 #3
for(var i = 0; i < 10; i++){
}
console.log(i); // returns 10, because for is not a function