JS函数基础知识

JS中函数有两种命名方式

1、一种是声明式:

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

function XXX(){}

2、一种是函数表达式:

函数表达式我们经常使用,而函数表达式中的function则不会出现函数提升。而是JS解释器逐行解释,到了这一句才会解释。因此如果调用在函数表达式之前,则会调用失败。

var k = function(){}

fn1();

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

fn2();

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

对函数表达式加上(),是可以直接调用的 
但是如果是对声明式的后部加上()则是会被编译器忽略:

 

  1. var fn2 = function(){}();//对,就是这样

  2. function fn1(){}();//会被忽略

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

(function fn1(){})();

你可能感兴趣的:(计算机,javascript)