函式:定義函式
定義方式
第一種定義方式:可在后面定義前面呼叫.可提前呼叫
function gg(){ console.log("函式內部的代碼"); }
第二種定義方式:必須先定義后面執行,提前呼叫報錯
// b();//報錯 -- let定義的函式不可以提前呼叫 let b = function(){ console.log("這是函式b"); }; //只能在定義之后呼叫 b();
函式的作用域
一個變數起作用的區域:全域變數(全域作用域),區域變數(區域作用域) 作用域鏈:要使用某個變數的時候,先從自身作用域開始查找,自己有就用自己的,自己沒有再從父級作用域開始查找,依次類推,直到全域為止, 1.不允許從父級作用域訪問子級作用域,允許從子級作用域訪問父級作用域, 2.作用域不同,變數名是可以重復到的. 3.同級之間無法訪問//全域變數
let a = 10; function x(){
//區域變數 let a = 20; function y(){ console.log(a); } y(); } x(); console.log(a);
函式運算式
通常我們需要定義函式之后,再才能用 函式名() 的形式自執行,函式運算式可以直接在后面加小括號自執行執行,
開發單獨功能模塊,方便代碼后期整理,優化
(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;//匿名函式不能單獨出現 // function(){} //報錯
//匿名函式 //充當事件函式的時候,可以用函式名字,也可以直接寫一個匿名函式 document.onclick = function (){ console.log("這是一個匿名函式"); };
引數
實參 形參 不定參
實參:函式自執行時,小括號里面傳入的資料;形參:函式定義時,小括號里面寫的變數名;不定參:Arguments函式內部的偽陣列,用于存盤著所有的實參集合;
函式定義時()寫的是形參,函式執行()寫的是實參
函式內部有一個變數 Arguments,Arguments不定參記錄所有實參傳給形參的集合 注:當實參傳入形參不是一個資料時,自動轉換(尋找變數值運算),當實參傳入一個函式時,形參自執行即可.//功能函式:求和 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 );
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/245599.html
標籤:JavaScript
