1.变量提前编译
showname();
function showname()
{
//变量提前
console.log(a);//变量提前声明/预编译
var a=10;
console.log(a);
}
结果如下:
变量a在第一次输出时被提前声明,但并未赋值,所以结果为undefined,变量a在第一次输出前已被声明和赋值,所以第二次输出值为10。
2.函数的提前声明
①
showname();//提前编译函数
function showname()
{
var a=10;
console.log(a);
}
以上函数可提前编译
②
var m=function()
{
console.log("匿名函数");
}
m();
匿名函数不可提前编译。
m();
var m=function()
{
console.log("匿名函数");
}
如果提前编译匿名函数,结果如下: