代码如下:
输出的是全局变量b,所以为undefiend。
我自己在Chrome里面运行了一下代码,代码正确结果是1.number 2.undefined。这里考察的是JavaScript的变量声明提前概念。
我们在看另外一个例子,比如下面:
代码如下:
test();
function test(){
alert("Hello World!");
}
程序不会报错,而已运行结果是:Hello World!。原理:计算机在开始执行语句之前,会先查找所有的function定义,然后保存相关的function。
第1题:
var a = 1;
var a;
第2行声明变量a,就相当于在顶部声明了a,然后第一句是重新声明a,然后赋值为1。所以typeof a为number
第2题:
b = '-----';
var b;
第二题解析:b=‘-----',程序首先会去查找上下文是否有变量b的声明,如果有的话,直接赋值为'-----'。但是alert( typeof b); 是在函数外面,输出的全局变量b,所有是undefined。
请注意:对变量的赋值操作并没有提前。
接着看如下代码段:
代码如下: