js中是函数声明先提升还是变量先提升
发布网友
发布时间:2022-04-07 05:36
我来回答
共3个回答
热心网友
时间:2022-04-07 07:06
js变量的声明,放在函数外,就是全局变量;放在函数内的变量,只在该函数里以及这个函数下面的作用域能使用。
你这里出现放在函数外出错的原因是,div1是一个html的节点,这个节点只有在它加载完成后才能使用。但是你却在该加点加载完成前就去使用了。这个时候,oDiv是等于null的,所以会报错。
热心网友
时间:2022-04-07 08:24
console.log(typeof a) // "function"
function a() { ... }
var a = 1
现实是,和上面使用这个示例的回答者的回答相反:
函数声明先提升,变量后提升,且函数声明会被提升到普通变量之前。
那既然如此,为什么输出是"function"呢?
这是因为,变量提升时,只提升了声明,并没有提升赋值。上面的例子提升后理解为:
function a() { ... }
var a;
console.log(typeof a); //"function"
a = 1;
第二句中声明的a被理解为重复声明而不予理会,所以a的类型在输出时依旧为function。
热心网友
时间:2022-04-07 09:58
变量优先提升,变量会在函数之前。
console.log(typeof a) // "function"
function a() { ... }
var a = 1