js函数调用方式

js调用方式有如下几种:

1.函数声明

javascript 代码

function a (){
  alert(123);
}

2.函数表达式

javascript 代码

var a =function(){
 alert('234');
}

关于上面本文一开始标记的函数字面量和构造函数,用在这里有点不恰当,自己也有点拿捏不准,故而去掉!!!!

就这两点来说: 在javascript函数体内(执行作用域)声明的变量,无论在函数体何处声明,它将都会被提升到函数的顶部,我们称这种现象为变量提升。 函数呢,它也有这种特性,即无论在函数体何处声明另一个函数,它将都会被提升到函数的顶部。只是采用函数表达式和函数声明所体现的函数提升的内容是有差别的:函数表达式和变量提升类似,只会提升函数的变量,不提升函数的定义;而函数声明提升时,不仅仅会提升函数的声明,函数的定义也会被提升

根据以上特性,你的代码在执行时,
function a (){
alert(123);
}
这段代码被提升到执行作用域的顶端,最开始被执行;

然后,在执行
var a =function(){

alert('234');
}
这段代码,导致该代码覆盖了前面的函数声明代码

可以把a()放到函数的最顶端测试;测试结果:

javascript 代码

a();//会弹出123
    var a=function(){
        alert(234);
    }
    a();//会弹出234
    function a(){
        alert(123);
    };

3.没有引用的匿名函数调用1

javascript 代码

function(){alert(333);}());

4.没有引用的匿名函数调用2

javascript 代码

(function(){alert(444);})();

5.没有引用的匿名函数调用3

javascript 代码

void function(){alert(555);}();

1.1---1.2

图1.1,图1.2表明了这两种表达式的运算过程是不一样的,图1.1中是用强制运算符使函数调用运算得以执行,图1.2中则用强制运算符运算"函数声明"这个表达式,并返回一个函数自身的引用,然后通过函数调用运算"()"来操作这个函数引用。而上面的最后一个匿名函数调用void function(){}();则用于调用函数并忽略返回值,运算符void用于使其后面的函数表达式执行运算。

posted @ 2022-09-29 13:56  与君别  阅读(927)  评论(0编辑  收藏  举报