1、var声明的变量提到当前script块的头部,赋值留在原位置,如果在赋值之前访问变量,返回undefined
console.log('第一次调用:'+sukla)
var sukla='sukla'
console.log('第二次调用:'+sukla)
VM238:1 第一次调用:undefined
VM238:3 第二次调用:sukla
undefined2、function fn(){}定义的函数会将整个函数体提前到script块的前面去
fn()
function fn(){
console.log('调用fn')
}
VM290:3 调用fn3、var fn=function(){}定义的函数,只是把函数名的定义提前到script块的前面,函数体还在原位置,如果在函数体之前通过fn()来调用函数会报错
fn()
var fn=function(){
console.log('函数体没提前')
}
fn()
VM290:3 调用fn
VM354:3 函数体没提前
本文探讨了JavaScript中变量声明与函数定义的不同行为,包括变量提升导致的未赋值前访问返回undefined的情况、函数声明的整体提升及函数表达式的名称提升但函数体不提升等问题。
462

被折叠的 条评论
为什么被折叠?



