问答详情
源自:7-3 [JavaScript]ES3执行上下文

hi,老师你好~关于声明和定义以及作用域看了好多博客理解都不是很深,今天还有一些小的疑问!

看了7-3这一节课,总结起来可不可以这样:在全局执行环境中,无论有多少var也不管名字冲突与否,都可以默认先把这些声明写到代码的最开始,然后再看是否名字有冲突,如果有冲突就按照那三个标准判断,最后看alert()语句和赋值语句的位置,如果赋值语句在前就输出数值,否则是undefined,对么??

提问者:wens 2015-04-20 15:35

个回答

  • Bosn
    2015-05-08 10:20:40

    变量初始化阶段,所有变量声明都会提前处理,并且初始化值为undefined


    而赋值语句是在代码执行阶段触发的,经过赋值改写了变量值再alert自然就是修改之后。而变量/函数的声明,是前置处理的。