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 »ò¸üÔçµÄ°æ±¾²»Ö§³Ö¼ýÍ·º¯Êý¡£