js变量提升好处和问题(js专项之变量提升和函数提升题目)
导读:变量提升题目:...
变量提升题目:
答案如下(还请先思考哦)
//编译后
(function(){
var a;
a=5;
console.log(window.a) //undefined
a=10;
console.log(a) //10
})()
函数提升题目:
function test(){
console.log(1,foo);
console.log(2,bar);
var foo=hello
console.log(3,foo);
var bar =function(){
return world
}
function foo(){
return hello
}
}
test()
答案如下:
//编译后 //函数提升优先级大于变量提升
function test(){
function foo(){
return hello
}
var foo;
var bar;
console.log(1,foo); //foo(){ }
console.log(2,bar); //undefined
foo=hello
console.log(3,foo); //hello
bar =function(){
return world
}
}
test()
总结:
1.对于用var声明的变量 ,声明会提升到其所在作用域的顶端 ,但赋值操作不会提升 。
2.函数声明同样也会提升 ,这里仅限于函数声明 ,并不包含函数表达式 。
3.如果变量名和函数名一样的话 ,函数提升优先级高于变量提升 。
4.如果存在两个函数声明 ,则先出现的声明先提升 ,后出现的声明后提升 ,函数名相同的时候 ,后提升的会覆盖先提升的 。
声明:本站所有文章 ,如无特殊说明或标注 ,均为本站原创发布 。任何个人或组织 ,在未征得本站同意时,禁止复制 、盗用 、采集 、发布本站内容到任何网站 、书籍等各类媒体平台 。如若本站内容侵犯了原著者的合法权益 ,可联系我们进行处理 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!