首页 > 代码库 > javascript中两种定义函数方式的差别以及函数的预编译效果
javascript中两种定义函数方式的差别以及函数的预编译效果
我们知道在javascript中定义函数的方式有以下两种:
function mm(){ }
这种形式是声明一个函数,跟 var 声明一个变量机制一样,脚本在解释执行之前会做预编译处理。
var mm = function(){ }
这种形式是对一个变量赋值,虽然也做预编译,但仅仅只是给 mm 事先变量分配一个内存空间,而没有做初始化。
代码1:
alert(a);//打印函数a的内存 alert(b);//undefined alert(c);//JS报错:“c”未定义 function a() { } var b = function(){};
代码2:
func(); //2 func = function() {alert(1);}; func(); //1 function func() {alert(2);}; func(); //1
可见:
Javascript并非完全的按顺序解释执行,而是在解释之前会对Javascript进行一次“预编译”。第一种方式定义的函数,javascript允许在函数定义之前被使用;第二种方式定义的函数,不能提前使用,因为其值是undefined。
javascript中两种定义函数方式的差别以及函数的预编译效果
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。