我了解到,只要我们不定义变量,而仅在函数中对其进行初始化,则将其视为全局变量。我也了解到,总是在程序开始运行时首先定义变量。
var globalVariable = "This is a global variable";
function fun(){
localVariable = "This is a local Varible";
console.log();
console.log();
}
console.log(localVariable);//This is a local Varible(Ouput)
console.log(globalVariable);//This is a global variable(Output)
上面的代码似乎运行良好,但是我对下面代码的输出感到困惑,我试图清除我的概念。
var globalVariable = "This is a global variable"
function fun(){
console.log(localVariable); //Uncaught ReferenceError: localVariable is not defined
localVariable = "This is a local Varible";
}
fun();
console.log(globalVariable);//This is a global variable(Output)
我不确定为什么console.log(localVariable);出现未捕获的刷新错误
答案 0 :(得分:1)
尝试下面的代码,它可以正常工作-注意函数内的var
var globalVariable = "This is a global variable"
function fun() {
var localVariable = "NOW this is a local Variable";
console.log(localVariable); //now this is a local variable
}
fun();
console.log(globalVariable); //This is a global variable(Output)
答案 1 :(得分:1)
其他人关于变量范围的说法是正确的,但我想补充一件事。
“我了解到,总是在程序开始运行时首先定义变量。”
我认为这可能引起您的困惑, JavaScript使用吊装。解析器通读整个函数并执行所有变量声明,就像在作用域的开头一样。 但是您必须使用var关键字来声明它,当前您仅为其分配了一个值。
例如,尽管声明是在使用变量之后进行的,但这仍然有效
x = 5;
elem = document.getElementById("demo");
elem.innerHTML = x;
var x;
答案 2 :(得分:0)
简单以便查看您首先需要定义的任何变量的日志。
var globalVariable = "This is a global variable"
function fun(){
var localVariable = "This is a local Varible";
console.log(localVariable); //Uncaught ReferenceError: localVariable is not defined
}
fun();
console.log(globalVariable);//This is a global variable(Output)
JavaScript变量是用于存储数据值的容器。所有JavaScript变量必须使用唯一的名称标识。这些唯一的名称称为标识符。因此,首先您需要确定哪个标识符代表什么,然后只有您才能查看结果。
答案 3 :(得分:0)
首先,在函数中定义的变量不是全局变量,而是局部变量。
我认为您可能在定义localVariable之前就在调用它。先定义它,然后执行console.log()。