<script>
var num=15;
var fn1=function(x){
console.log("x:"+x);
console.log("11111111111111111111111");
if(x>num){
console.log("x:"+x);
}
}
var fn3=function(a,d){//用变量fn3存储一个匿名函数
console.log("num:"+num);//15
console.log("a:"+a)//打印值为30
console.log("d:"+d)//打印为undefined
}
void function(fn2){
console.log("22222222222222222");
console.log("num:"+num);//undefined
var num=100;
fn2(30);//fn2即是传入的fn3,并对其所对应的函数对像传参,参数从左到右传递
console.log("num:"+num);
console.log("333333333333333333");
console.log("num:"+num);
}(fn3);//将fn3作为变量传入本匿名函数并调用执行
/*如果改成:
<<<1
void function(fn2){
console.log("22222222222222222");
var num=100;
fn2(30);//fn2即是传入的fn3,并对其所对应的函数对像传参,参数从左到右传递
console.log("num:"+num);
console.log("333333333333333333");
console.log("num:"+num);
}(fn1);
即是将fn1作为变量传入本匿名函数并调用执行
<<<2
void function(fn2){
console.log("22222222222222222");
var num=100;
fn2(30);//fn2即是传入的fn3,并对其所对应的函数对像传参,参数从左到右传递
console.log("num:"+num);
console.log("333333333333333333");
console.log("num:"+num);
}();
不传参则会报fn2不是函数的错误码
<<<3
void function(){
console.log("22222222222222222");
}();
直接执行当前函数
*/
</script>