函式的概述
函式 實際就是多行代碼的抽取(多行代碼會構成特定的功能)(方法)
函式的優點
減少冗余代碼(重復的代碼放在函式里面 在需要的時候呼叫)函式封裝(特定的一些代碼使用函式來包起來),
提高了代碼的可維護性及可閱讀性,
函式的分類
-
系統函式 window里面的所有函式都屬于系統函式 (console.log() alert() prompt()...)
-
內置函式 所有的內置物件里面的函式 都叫內置函式 (Math.pow())
-
自定義函式( 自己定義的函式)
內置函式和系統函式我們更關注于他的使用 自定義函式(定義以及使用)
自定義函式的定義以及呼叫
1、使用function關鍵詞 定義匿名函式(沒有名字的函式)
function(形參(可以省略的 可以有多個)){ 函式體(代碼) } //直接呼叫 讓別人(事件)去呼叫(自動呼叫) (function(){ console.log('匿名函式') })()
匿名函式 (宣告比較少 他沒有復用價值)
2.使用function關鍵詞 定義具名函式 (有名字的函式)
function 函式名(形參,形參...){ 函式體(代碼) } //宣告 具名函式(第一種) function sayHello(){ console.log('hello') } sayHello() //傳遞引數 function sayHello1(name,age){ //形參是形容的引數 console.log('hello'+name+age) } sayHello1('李四') //傳進的是實參 根據你要的引數個數來傳遞對應的引數個數 //呼叫 // sayHi() //報錯 // console.log(sayHi); undefined //具名函式的變種宣告 (第二種) var sayHi = function(){ console.log('hi') } sayHi()
3.使用new Function方式
var 函式名 = new Function('形參,形參1','函式體') //定義 var sayBye = new Function('console.log("bye bye!!")') //呼叫 sayBye() //傳參 var sayBye = new Function('username','console.log("bye bye!!"+username)') //呼叫 sayBye('李四')
函式的執行程序
1.把對應的開辟的function記憶體里面的代碼塊丟給方法堆疊(執行堆疊)去執行
2.執行堆疊就會自動取執行對應的方法 執行完回傳對應的結果
3.當前結果回傳完畢以后 對應的執行堆疊里面的記憶體空間要進行回收(GC)將這個記憶體空間銷毀
函式的作用域
當前一個變數的作用范圍 分為區域作用域(在一個函式內宣告的 或者是在一段代碼塊內宣告的 他的作用范圍就是當前的代碼塊)和全域作用域(在對應的全域宣告的 他的作用范圍就是全域的)
作用域鏈
當前的作用域內沒有找到對應的變數就會向上去尋找 而這個程序構成的鏈式結構稱為作用域鏈
var a = 20 function fn(){ console.log(a);//undefined 沒有var關鍵詞就20 var a = 10 if(10>9){ console.log(a);//undefined 沒有var關鍵詞就10 var a = 30 if(5>4){ console.log(a);//undefined 沒有var關鍵詞就30 var a = 40 if(a>10){ console.log(a);//40 } } } } fn()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/500549.html
標籤:其他
下一篇:學習Js-day04
