var test = 100;
function test(){
var i=0;
}
alert(test);
请测试一下,让我知道变量和函数名称的优先级是什么?
经过上述测试后,请尝试评论第1行// var test = 100;
并检查输出是什么。
我只是想知道为什么会这样?
任何人都可以帮助我吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
请勿使用与变量名称相同的功能名称 如果你先定义一个变量然后再运行,那么该变量将使用函数覆盖。
function test(){
alert(3);
}
与
var test=function() {alert(3)};
答案 2 :(得分:0)
根据变量作用域,它将用于函数作用域值i = 0如果你想调用函数你需要调用带有返回值的test()out,然后它只会从作用域变量中获取值。
var test = 100;
function test(){
var i=0;
return i;
}
alert(test());
答案 3 :(得分:0)
好的,让我们看看javascript如何处理以下代码:
var test = 100;
function test(){
var i=0;
}
alert(test);
使用hoisting,这就是JS解析器转换代码的方式:
// Variables & functions declarations are hoisted
var test;
function test() {
var i = 0;
}
// Then the actual code is run. Thus, your assignment.
test = 100;
alert(test);
我猜你现在明白为什么它警告100了。