if(){
var1 = "some html"
}
if(){
console.log(var1);
}
var1
未定义,但我认为不使用var make var1
成为全局变量?
不要将变量声明为var var1
答案 0 :(得分:1)
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