"Usual" functions vs function variables in JavaScript

This question already has an answer here:

  • var functionName = function() {} vs function functionName() {} 31 answers

  • This article might answer your question : JavaScript function declaration ambiguity.

    Only the first one is an actual function declaration, whereas the shorthand method is just a regular variable declaration with an anonymous function assigned to it as its value.

    (look at the comments, too, which might get some useful informations too)


    I know that a difference between them is that named functions work everywhere regardless you declare them, functions in variables don't.

    a();//works   
    function a(){..}
    

    works

    a();//error
    var a=function(){..}
    

    doesn't work but if you call it after the declaration it works

    var a=function(){..}
    a();//works
    

    There is no difference superficially, so you can use both formats in your code.

    To js interpreter it is different though.

    First one is a named funciton.

    Second one is an anonymous function that gets assigned to a variable.

    Also, while debugging, you won't get a name of for the second function in stack trace.

    链接地址: http://www.djcxy.com/p/2836.html

    上一篇: 为什么window.addEventListener不起作用?

    下一篇: JavaScript中的“通常”函数与函数变量