摘要:
首先,js中变量没有块级作用域,但是有函数作用域,即只有函数可以约数变量的作用域。 并且,函数的实质也是一个变量,所以可以改变它的值,即赋值。所以变量名提升和函数名提升非常相像。 1.变量名的提升发生在函数内部。看下面的例子。说明:第一个因为弹出undefined,相当于在上面定义了var num; 阅读全文
摘要:
一段JS代码在执行的时候,大致可以分为两步。第一步为对代码的编译阶段,第二步才是真正去执行各语句。代码中用关键字var的变量声明和函数声明(非函数表达式)会在编译阶段提升到其所在作用域的顶端,之后这些声明在第二步各语句执行阶段就不会再被处理了,可以理解为直接跳过。 1.对于用var声明的变量,声明会 阅读全文
摘要:
JavaScript没有块级作用域。在其他语言上,比如C语言中,有花括号封闭的代码块都有自己的作用域,(如果用ECMAScript的话来讲,就是他们自己的执行环境),因而支持根据条件来定义变量。例如,下面的代码效果 if (true) { var color = "blue"; } alert(co 阅读全文