javascript声明

变量声明提前

****使用var声明的变量会在所有的代码执行之前被声明,但赋值不会提前

console.log("a = "+ a);

var a=123;

返回的是a=undifined 这两行代码相当于

var a;

console.log("a="+a);

a=123;

而如果代码是

console.log("a="+a);

a=123;

则会报错

****如果声明变量时没有使用var,则不会提前声明

函数声明提前

使用函数声明形式创建的函数function 函数名(){} 代码在执行前它就会被创建,所以可以在函数声明前调用这样声明的函数

var fun2 = function(){} 使用函数表达式创建的函数不能在声明前调用

比如

fun2();

var fun2 = function(){};

会报错

fun2;

var fun2 = function(){};

则得到的是undifined  因为fun2用var 声明了,所以会被提前声明,不报错,但它的赋值确实在后面下进行的     

第一种情况是它根本不知道fun2是函数,只知道fun2是被声明但未被赋值的变量,你去调用一个undefined肯定会报错

猜你喜欢

转载自blog.csdn.net/zhangting8_/article/details/83794755