背景知识 只要关注"生成变量对象"和"变量赋值"就行了,其它暂时不是重点。 只要搞清楚"function:"(函数)声明的优先级大于"var:"(变量)声明就行了,其它暂时不是重点。变量对象创建过程其实就是所谓的"预编译"过程 变量提升函数的实际执行顺序和文档顺序是有差异的。函数中的函数声明和变量声明会被置顶。 文档顺序 实际执行顺序(函数与变量的声明被置顶,其它语句顺序不变) 函数声明的优先级大于变量声明的优先级体现于两点 1.实际执行顺序中,先进行函数声明,再进行变量声明。(如上例)2.当遇到变量声明时变量名与某函数名相同的情况时,该变量放弃声明。比如: 文档顺序 实际执行顺序