JavaScript º¯Êý¶¨Òå

JavaScript º¯ÊýÊÇͨ¹ý function ¹Ø¼ü´Ê¶¨ÒåµÄ¡£

Äú¿ÉÒÔʹÓú¯ÊýÉùÃ÷»òº¯Êý±í´ïʽ¡£

º¯ÊýÉùÃ÷

ÔÚ±¾½Ì³ÌÖÐÉÔÔç֮ǰ£¬Äúѧµ½ÁËͨ¹ýÈçÏÂÓï·¨ÉùÃ÷º¯Êý£º

function functionName(parameters) {
   ÒªÖ´ÐеĴúÂë
}

±»ÉùÃ÷µÄº¯Êý²»»áÖ±½ÓÖ´ÐС£ËüÃDZ»¡°±£´æ¹©ÉÔºóʹÓá±£¬½«ÔÚÉÔºóÖ´ÐУ¬µ±ËüÃDZ»µ÷ÓÃʱ¡£

ʵÀý

function myFunction(a, b) {
     return a * b;
}

Ç××ÔÊÔÒ»ÊÔ

·ÖºÅÓÃÓÚ·Ö¸ô¿ÉÖ´ÐÐµÄ JavaScript Óï¾ä¡£

ÓÉÓÚº¯ÊýÉùÃ÷²»ÊÇ¿ÉÖ´ÐеÄÓï¾ä£¬ÒԷֺŽáβ²¢²»³£¼û¡£

º¯Êý±í´ïʽ

JavaScript º¯ÊýÒ²¿ÉÒÔʹÓñí´ïʽÀ´¶¨Òå¡£

º¯Êý±í´ïʽ¿ÉÒÔÔÚ±äÁ¿Öд洢£º

ʵÀý

var x = function (a, b) {return a * b};

Ç××ÔÊÔÒ»ÊÔ

ÔÚ±äÁ¿Öб£´æº¯Êý±í´ïʽ֮ºó£¬´Ë±äÁ¿¿ÉÓÃ×÷º¯Êý£º

ʵÀý

var x = function (a, b) {return a * b};
var z = x(4, 3);

Ç××ÔÊÔÒ»ÊÔ

ÉÏÃæµÄº¯Êýʵ¼ÊÉÏÊÇÒ»¸öÄäÃûº¯Êý£¨Ã»ÓÐÃû³ÆµÄº¯Êý£©¡£

´æ·ÅÔÚ±äÁ¿Öеĺ¯Êý²»ÐèÒªº¯ÊýÃû¡£ËûÃÇ×ÜÊÇʹÓñäÁ¿Ãûµ÷Óá£

ÉÏÃæµÄº¯ÊýʹÓ÷ֺŽá⣬ÒòΪËüÊÇ¿ÉÖ´ÐÐÓï¾äµÄÒ»²¿·Ö¡£

Function() ¹¹ÔìÆ÷

ÕýÈçÄúÔÚ֮ǰµÄÀý×ÓÖп´µ½µÄ£¬JavaScript º¯ÊýÊÇͨ¹ý function ¹Ø¼ü´Ê¶¨ÒåµÄ¡£

º¯ÊýÒ²¿ÉÒÔͨ¹ýÃûΪ Function() µÄÄÚ½¨ JavaScript º¯Êý¹¹ÔìÆ÷À´¶¨Òå¡£

ʵÀý

var myFunction = new Function("a", "b", "return a * b");

var x = myFunction(4, 3);

Ç××ÔÊÔÒ»ÊÔ

Äúʵ¼ÊÉÏÎÞÐèʹÓú¯Êý¹¹ÔìÆ÷¡£ÉÏÃæµÄÀý×ÓÕâôдҲÊÇÒ»ÑùµÄ£º

ʵÀý

var myFunction = function (a, b) {return a * b};

var x = myFunction(4, 3);

Ç××ÔÊÔÒ»ÊÔ

´ó¶àÊýÇé¿öÏ£¬Äú¿ÉÒÔ±ÜÃâÔÚ JavaScript ÖÐʹÓà new ¹Ø¼ü´Ê¡£

º¯ÊýÌáÉý

ÔÚ±¾½Ì³ÌÖÐÉÔÔçǰ£¬ÄúÒѾ­Ñ§µ½ÁË¡°ÌáÉý¡±£¨hoisting£©¡£

Hoisting ÊÇ JavaScript ½«ÉùÃ÷ÒÆ¶¯µ½µ±Ç°×÷ÓÃÓò¶¥¶ËµÄĬÈÏÐÐΪ¡£

Hoisting Ó¦ÓÃÓÚ±äÁ¿ÉùÃ÷ºÍº¯ÊýÉùÃ÷¡£

ÕýÒòÈç´Ë£¬JavaScript º¯ÊýÄܹ»ÔÚÉùÃ÷֮ǰ±»µ÷Óãº

myFunction(5);

 function myFunction(y) {
     return y * y;
}

ʹÓñí´ïʽ¶¨ÒåµÄº¯Êý²»»á±»ÌáÉý¡£

×Ôµ÷Óú¯Êý

º¯Êý±í´ïʽ¿ÉÒÔ×÷Ϊ¡°×Ôµ÷Óᱡ£

×Ôµ÷Óñí´ïʽÊÇ×Ô¶¯±»µ÷Ó㨿ªÊ¼£©µÄ£¬ÔÚ²»½øÐе÷ÓõÄÇé¿öÏ¡£

º¯Êý±í´ïʽ»á×Ô¶¯Ö´ÐУ¬¼ÙÈç±í´ïʽºóÃæ¸ú×Å ()¡£

ÄúÎÞ·¨¶Ôº¯ÊýÉùÃ÷½øÐÐ×Ôµ÷Óá£

ÄúÐèÒªÔÚº¯ÊýÖÜΧÌí¼ÓÀ¨ºÅ£¬ÒÔָʾËüÊÇÒ»¸öº¯Êý±í´ïʽ£º

ʵÀý

(function () {
    var x = "Hello!!";      //ÎÒ»áµ÷ÓÃÎÒ×Ô¼º
})();

Ç××ÔÊÔÒ»ÊÔ

ÉÏÃæµÄº¯Êýʵ¼ÊÉÏÊÇÒ»¸öÄäÃûµÄ×Ôµ÷Óú¯Êý£¨Ã»ÓÐÃû³ÆµÄº¯Êý£©¡£

º¯Êý¿ÉÓÃ×÷Öµ

JavaScript º¯Êý¿É±»ÓÃ×÷Öµ£º

ʵÀý

function myFunction(a, b) {
    return a * b;
}

var x = myFunction(4, 3);

Ç××ÔÊÔÒ»ÊÔ

JavaScript º¯Êý¿ÉÓÃÔÚ±í´ïʽÖУº

ʵÀý

function myFunction(a, b) {
    return a * b;
}

var x = myFunction(4, 3) * 2;

Ç××ÔÊÔÒ»ÊÔ

º¯ÊýÊǶÔÏó

JavaScript ÖÐµÄ typeof ÔËËã·û»áΪº¯Êý·µ»Ø "function"¡£

µ«ÊÇ×îºÃÊÇ°Ñ JavaScript º¯ÊýÃèÊöΪ¶ÔÏó¡£

JavaScript º¯Êý¶¼ÓÐÊôÐԺͷ½·¨¡£

arguments.length »á·µ»Øº¯Êý±»µ÷ÓÃʱÊÕµ½µÄ²ÎÊýÊýÄ¿£º

ʵÀý

function myFunction(a, b) {
    return arguments.length;
}

Ç××ÔÊÔÒ»ÊÔ

toString() ·½·¨ÒÔ×Ö·û´®·µ»Øº¯Êý£º

ʵÀý

function myFunction(a, b) {
    return a * b;
}

var txt = myFunction.toString();

Ç××ÔÊÔÒ»ÊÔ

¶¨ÒåΪ¶ÔÏóÊôÐԵĺ¯Êý£¬±»³ÆÎª¶ÔÏóµÄ·½·¨¡£

Ϊ´´½¨Ð¶ÔÏó¶øÉè¼ÆµÄº¯Êý£¬±»³ÆÎª¶ÔÏó¹¹Ô캯Êý£¨¶ÔÏó¹¹ÔìÆ÷£©¡£

¼ýÍ·º¯Êý

¼ýÍ·º¯ÊýÔÊÐíʹÓüò¶ÌµÄÓï·¨À´±àдº¯Êý±í´ïʽ¡£

Äú²»ÐèÒª function ¹Ø¼ü×Ö¡¢return ¹Ø¼ü×ֺͻ¨À¨ºÅ¡£

ʵÀý

// ES5
var x = function(x, y) {
  return x * y;
}

// ES6
const x = (x, y) => x * y;

Ç××ÔÊÔÒ»ÊÔ

¼ýÍ·º¯ÊýûÓÐ×Ô¼ºµÄ this¡£ËüÃDz»Êʺ϶¨Òå¶ÔÏó·½·¨¡£

¼ýÍ·º¯Êýδ±»ÌáÉý¡£ËüÃDZØÐëÔÚʹÓÃǰ½øÐж¨Òå¡£

ʹÓà const ±ÈʹÓà var ¸ü°²È«£¬ÒòΪº¯Êý±í´ïʽʼÖÕÊdz£Á¿Öµ¡£

Èç¹ûº¯ÊýÊǵ¥¸öÓï¾ä£¬ÔòÖ»ÄÜÊ¡ÂÔ return ¹Ø¼ü×ֺʹóÀ¨ºÅ¡£Òò´Ë£¬±£ÁôËüÃÇ¿ÉÄÜÊÇÒ»¸öºÃϰ¹ß£º

ʵÀý

const x = (x, y) => { return x * y };

Ç××ÔÊÔÒ»ÊÔ

IE11 »ò¸üÔçµÄ°æ±¾²»Ö§³Ö¼ýÍ·º¯Êý¡£

VUE