变量声明提前,函数声明提前

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Sukla/article/details/80875854

1、var声明的变量提到当前script块的头部,赋值留在原位置,如果在赋值之前访问变量,返回undefined

console.log('第一次调用:'+sukla)
var sukla='sukla'
console.log('第二次调用:'+sukla)
VM238:1 第一次调用:undefined
VM238:3 第二次调用:sukla
undefined

2、function fn(){}定义的函数会将整个函数体提前到script块的前面去

fn()
function fn(){
console.log('调用fn')
}
VM290:3 调用fn

3、var fn=function(){}定义的函数,只是把函数名的定义提前到script块的前面,函数体还在原位置,如果在函数体之前通过fn()来调用函数会报错

fn()
var fn=function(){
console.log('函数体没提前')
}
fn()
VM290:3 调用fn
VM354:3 函数体没提前

猜你喜欢

转载自blog.csdn.net/Sukla/article/details/80875854
今日推荐