码迷,mamicode.com
首页 > 编程语言 > 详细

javascript预编译

时间:2018-12-17 21:05:26      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:efi   表达式   log   func   ret   a+b   实参   foo   返回   

预编译:
函数的预编译发生在执行函数之前。
预编译四部曲:
1.创建AO对象;
2.找形参和变量声明,将变量和形参名作为AO属性名,值为undefined;
3.将实参值和形参统一;
4.在函数体里面找函数声明,值赋予函数体。

AO{
foo:function foo(){};
}

function bar(){
return foo;
foo=10;
function foo(){}
}
console.log(bar());

该函数的返回值为function foo(){ }。

立即执行函数
在函数后添加“()”,执行完即被销毁。
写法:( function ( ) { … } ( ) )或 ( function ( ) { … } ) ( )

(function (){ var a = 123; var b = 234; console.log(a+b); }())
立即执行函数也可以引入参数。

(function (a,b,c){
console.log(a+b+c)
}(1,2,3))

此时输出值为6。

注:1)只有表达式才能被执行!!!

var demo=function(){
console.log(‘a‘);
}();

执行一次后demo已不是函数。
2)若在函数申明后加执行符号()会报错。
3)正负号+ - 和非 ! 会将后面的东西变成表达式!!!
---------------------


javascript预编译

标签:efi   表达式   log   func   ret   a+b   实参   foo   返回   

原文地址:https://www.cnblogs.com/fushuxin/p/10133710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!