第一種定義方式:可在後面定義前面調用.可提早調用數組
function gg(){ console.log("函數內部的代碼"); }
第二種定義方式:必須先定義後面執行,提早調用報錯函數
// b();//報錯 -- let定義的函數不能夠提早調用 let b = function(){ console.log("這是函數b"); }; //只能在定義以後調用 b();
//全局變量
let a = 10; function x(){
//局部變量 let a = 20; function y(){ console.log(a); } y(); } x(); console.log(a);
一般咱們須要定義函數以後,再才能用 函數名() 的形式自執行,函數表達式能夠直接在後面加小括號自執行執行。優化
開發單獨功能模塊,方便代碼後期整理,優化spa
(function(){ console.log("函數內部代碼"); })(); //其餘的函數表達式寫法 (function(){ console.log("函數表達式自執行2"); }()); +function(){ console.log("函數表達式自執行3"); }(); -function(){ console.log("函數表達式自執行4"); }(); ~function(){ console.log("函數表達式自執行5"); }(); !function(){ console.log("函數表達式自執行6"); }(); //輪播圖 (function(){ })(); //選項卡 (function(){ })(); //側邊欄 (function(){ })();
//有名函數 function gg(){ console.log("函數內部的代碼"); }*/ //函數自執行 gg(); //充當事件函數 被執行(注不須要加(),只須要加函數名) document.onclick = gg;
//匿名函數 //充當事件函數的時候,能夠用函數名字,也能夠直接寫一個匿名函數 document.onclick = function (){ console.log("這是一個匿名函數"); };
code
blog
//功能函數:求和 function sum( a,b ){ //形參 console.log(a,b,a + b); } sum( 3 , 4 );//實參 sum( 3 , 5 );//實參 sum( 3 , 10 );//實參 //實參多 -- 沒有對應的形參來接收多的,可是正常運行不會出錯 sum( 5 , 6 , 7 ); //實參少 -- 沒有對應數據的形參就是默認值undefined sum( 2 );