javascript - var functionName = function() {} vs function functionName() {} -


i've started maintaining else's javascript code. i'm fixing bugs, adding features , trying tidy code , make more consistent.

the previous developer uses 2 ways of declaring functions , can't work out if there reason behind or not.

the 2 ways are:

var functionone = function() {     // code }; 
function functiontwo() {     // code } 

what reasons using these 2 different methods , pros , cons of each? there can done 1 method can't done other?

the difference functionone function expression , defined when line reached, whereas functiontwo function declaration , defined surrounding function or script executed (due hoisting).

for example, function expression:

// typeerror: undefined not function  functionone();    var functionone = function() {    console.log("hello!");  };

and, function declaration:

// outputs: "hello!"  functiontwo();    function functiontwo() {    console.log("hello!");  }

this means can't conditionally define functions using function declarations:

if (test) {    // error or misbehavior    function functionthree() { dosomething(); } } 

the above defines functionthree irrespective of test's value — unless use strict in effect, in case raises error.


Comments

Popular posts from this blog

php - Submit Form Data without Reloading page -

linux - Rails running on virtual machine in Windows -

php - $params->set Array between square bracket -