多项选择题

A.浏览器在运行代码之前会进行预解析,首先解析函数声明、定义变量,解析完成之后在对函数进行运行、变量进行等
B.不论var生命的变量处于当前作用域的第几行,都会提升到作用域的顶部,并且初始化为undefined
C.而let声明的变量同样不论处于当前作用域的第几行,都会提升到作用域的顶部,当赋值时才会被初始化
D.以上都不对