【目錄】
一、JavaScript 函式
1、宣告函式的方法
2、引數問題
3、回呼函式
4、遞回函式
5、自調函式
6、閉包函式
二、JavaScript 作用域
1、區域作用域
2、全域作用域
3、作用域鏈
4、塊狀作用域(ES6)
一、JavaScript 函式
1、宣告函式的方式
(1)function 關鍵字
(2)匿名函式方式(運算式方式)
(3)Function建構式方法
2、引數問題
(1)形參和實引數量問題
(2)可選形參(引數默認值)
(3)可變長的實參串列:實參物件 arguments
3、回呼函式
一個函式可以接收另一個函式作為引數,這種函式就是回呼函式(高階函式)
function add(x, y, f) { return f(x) + f(y);}add(-5, 6, Math.abs)
4、遞回函式
函式內部自己呼叫自己
//用遞回 實作階乘function multiply(n) { if (n == 1) { return 1 } return n * multiply(n - 1)}
5、自調函式
函式宣告完,直接呼叫
(function(){ console.log('ok')})()
6、閉包函式
當一個函式回傳了一個函式后,其內部的區域變數還在被新函式參考著,形成閉包
function count() { var arr = []; for (var i=1; i<=3; i++) { arr.push((function (n) { return function () { return n * n; } })(i)); } return arr;}var results = count();var f1 = results[0];var f2 = results[1];var f3 = results[2];f1(); // 1f2(); // 4f3(); // 9
二、JavaScript 作用域
1、區域作用域
一般在函式內定義的變數就是區域變數,僅供函式內部使用
2、全域作用域
在函式之外定義的變數就是全域變數,哪里都能使用
【變數提升】
var a = 100function demo(){ console.log(a) var a = 200}
3、作用域鏈
函式嵌套會形成作用域鏈
function demo(){ function fn(){ function fn1() { } }}
4、塊狀作用域(ES6)
使用 let 關鍵字宣告的變數會具有塊狀作用域
for (let i = 0; i < 10; i ++) {}console.log(i) //變數不存在 Uncaught ReferenceError: i is not defined
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/88334.html
標籤:JavaScript
