JS函数

作者: BenjaminU | 来源:发表于2019-09-29 11:38 被阅读0次

声明式

声明式会导致函数提升,function会被解释器优先编译。即我们用声明式写函数,可以在任何区域声明,不会影响我们调用。

function XXX(){}

函数表达式

函数表达式中的function则不会出现函数提升。而是JS解释器逐行解释,到了这一句才会解释。

因此如果调用在函数表达式之前,则会调用失败。

vark =function(){}

fn1();functionfn1(){}//可以正常调用

fn2();varfn2 =function(){}//无法调用

匿名函数

自执行函数,即定义和调用合为一体。

我们创建了一个匿名的函数,并立即执行它,由于外部无法引用它内部的变量,因此在执行完后很快就会被释放,关键是这种机制不会污染全局对象。

(function(x,y){

alert(x+y);

returnx+y;

}(3,4));

注意

对函数表达式加上(),是可以直接调用的 

但是如果是对声明式的后部加上()则是会被编译器忽略。

varfn2 =function(){}();//可直接调用

functionfn1(){}();//会被忽略

而平常的function(){}则是一种声明式,如果加上()括号后,则会被编译器认为是函数表达式,(加上+-号都可以),从而可以用()来直接调用

(functionfn1(){})();

相关文章

网友评论

      本文标题:JS函数

      本文链接:https://www.haomeiwen.com/subject/qkgductx.html