一、回呼函式
1.含義:如果你把函式的指標(地址)作為引數傳遞給另一個函式,當這個指標用來呼叫所指向的函式時,我們就說這是回呼函式,
2.函式也是有型別的,下面舉個回呼函式以及函式的型別演示,
function fn() { ? } console.log(typeof fn); console.log(Function.constructor); ? //回呼函式 function add(num1,num2){ return num1+num2; } function sub(num1,num2) { return num1-num2; } function mul(num1,num2) { return num1*num2; } function div(num1,num2) { return num1/num2; } //計算器函式 function cal(num1,num2,func) { return func(num1,num2); } //開始使用函式,回呼函式竟然可把函式作為引數進行傳參 var result = cal(12,5,add); console.log(result);

二、作用域鏈條
1.注意點:不使用var宣告的時全域變數,但是不推薦使用;變數退出作用域的時候會進行銷毀,全域變數關閉網頁或者瀏覽器的時候才會進行銷毀,
function f(){ var str = "厲害了"; str2 = "haoba"; console.log(str); console.log(str2); } f(); console.log(str2); console.log(str);

2.作用域
?注意點:(1)只有函式可以制造作用域,那么只要是代碼,就至少有一個作用域,即全域作用域?,凡是代碼中有函式,那么這個函式就構成另一個作用域,如果函式中還有函式,那么在這個作用域種又可以誕生一個作用域,
(2)不是以大括號來劃分的?,
(3)其他語言中,?for回圈內部的也是區域變數,但在JS中不是的,
{ var num4 = 24545; } console.log(num4); ? for(var i=0;i<4;i++){ console.log(i); } console.log(i+789);

三、預決議
1.概念:JS代碼的執行是有關瀏覽器中的決議器來執行的,JS決議器執行JS代碼的時候,分為兩個程序:預決議程序和代碼執行程序,
2.預決議程序:把函式的宣告提升到當前作用域的最前面,只會提升宣告,不會提升呼叫,(實驗表明:預決議只會提升函式,不會提升變數?)
console.log(a); var a; a = 878; var b = 23; console.log(b); ? console.log(f13); function f13() { console.log(g2); var g2 = 23; } f13(); var f13 = 78; console.log(f13);

四、原始碼:
D16_1_CallbackFunction.html
D16_2_ScopeChain.html
地址:
https://github.com/ruigege66/JavaScript/blob/master/D16_1_CallbackFunction.html
https://github.com/ruigege66/JavaScript/blob/master/D16_2_ScopeChain.html
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關注微信公眾號:傅里葉變換,個人賬號,僅用于技術交流,后臺回復“禮包”獲取Java大資料學習視頻禮包

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/69822.html
標籤:JavaScript
上一篇:如何用vue-Element-ui實作左側無限級選單?本文詳細教你
下一篇:Promise從入門到放棄
