js变量提升

知识点

1)函数声明会置顶
2)变量声明也会置顶
3)函数声明比变量声明更置顶:(函数在变量上面)
4)变量和赋值语句一起书写,在js引擎解析时,会将其拆成声明和赋值2部分,声明置顶,赋值保留在原来位置
5)声明过的变量不会重复声明
 
 
var b='l'
function b(){
    console.log(b)
}
b()

  浏览器报错Uncaught TypeError: b is not a function

浏览器js引擎将代码解析为

function b(){
  console.log(b)
}
var b
b="l"
b()

  

  

解剖代码

function b(){
    console.log(b)
}

var b//声明b
--------------------------

var b='l'//变量b='l'覆盖函数b=function b() 
b()//此处b应该是变量b:"l";而不是函数b()
console.log(b)//浏览器显示  l  注意:console应该是window.console.log(),window对象中window可省略

  


个人理解,如有错误敬请指正

链接地址
https://blog.csdn.net/demo_18/article/details/78493489

  

原文地址:https://www.cnblogs.com/chargeworld/p/10373483.html