1.1什么是函式?
函式是專門用于封裝代碼的, 函式是一段可以隨時被反復執行的代碼塊
1.2使用函式的好處
- 減少冗余代碼
- 需求變更, 需要修改的代碼變少了
1.3如何創建函式
// 格式一: function 函式名(形參1, 形參2, 形參3...) { //函式體 return 回傳值; } // 格式二: var 變數 = 函式名(實參1, 實參2, 實參3...);
創建函式的注意點:
- 和C語言一樣, 函式可以沒有回傳值, 也可以有回傳值,不同的是JavaScript是弱語言, 所以不用只能回傳值型別
- 如果函式沒有顯示的使用 return陳述句 ,那么函式有默認的回傳值:undefined
- 如果函式使用 return陳述句,那么跟再return后面的值,就成了函式的回傳值
- 如果函式使用 return陳述句,但是return后面沒有任何值,那么函式的回傳值也是:undefined
- 跟break函式相似,都是結束當前代碼塊,后面的函式永遠執行不到
函式中argument的使用:每個函式中都定義了一個argument,它的作用是保存所有傳遞給函式的形參,且它是一個偽陣列可以對其進行遍歷,
function getSum() { var sum = 0; for (var i = 0; i < arguments.length; i++) { sum += arguments[i]; } return sum; } var sum = getSum(5, 1, 3, 4); console.log(sum);
函式的擴展運算子在函式中的運用
1.擴展運算子在等號左邊, 將剩余的資料打包到一個新的陣列中(注意點: 只能寫在最后) let [a, ...b] = [1, 3, 5]; a = 1; b = [3, 5]; 2.擴展運算子在等號右邊, 將陣列中的資料解開 let arr1 = [1, 3, 5]; let arr2 = [2, 4, 6]; let arr = [...arr1, ...arr2]; let arr = [1, 3, 5, 2, 4, 6];
3.擴展運算子在函式形參中運用
與上面類似...
函式作為其他函式的引數和回傳值:
由于JavaScript中的函式也是一種資料型別, 所以函式也可以作為引數和回傳值使用
//函式作為其他函式的引數使用
var sayHi = function () { console.log("hello world"); } function test(fn) { fn(); } test(sayHi);
//函式作為其他函式的回傳值使用,注意只有JavaScript函式可以在其他函式中嵌套使用
function test() {
var sayHi = function () {
console.log("hello world");
}
return sayHi
}
var res = test();
res();
匿名函式:
沒有名稱的函式稱為匿名函式(匿名函式不能單獨出現,一般作為其他函式引數或者回傳值使用)2.匿名函式的注意點:
匿名函式不能夠只定義不使用
3.匿名函式的應用場景
3.1作為其他函式的引數
3.2作為其他函式的回傳值
3.3作為一個立即執行的函式
// 報錯
function () {
console.log("hello world");
}
// 立即執行函式 注意點: 如果想讓匿名函式立即執行, 那么必須使用()將函式的定義包裹起來才可以
(function () {
console.log("hello world");
})();
// 作為函式引數
function test(fn) {
fn();
}
test(function () {
console.log("hello world");
});
// 作為函式回傳值
function test() {
return function () {
console.log("hello world");
}
}
var res = test();
res();
箭頭函式:
從ES6開始如何定義函式 let 函式名稱 = (形參串列) =>{ 需要封裝的代碼; }
箭頭函式的注意點
4.1在箭頭函式中如果只有一個形參, 那么()可以省略
4.2在箭頭函式中如果{}中只有一句代碼, 那么{}也可以省略
遞回函式:
什么是遞回函式?
遞回函式就是在函式中自己呼叫自己, 我們就稱之為遞回函式
遞回函式在一定程度上可以實作回圈的功能
function login() {
// 1.接收用戶輸入的密碼
let pwd = prompt("請輸入密碼");
// 2.判斷密碼是否正確
if(pwd !== "123456"){
login();
}
// 3.輸出歡迎回來
alert("歡迎回來");
}
login();
2.遞回函式的注意點:
每次呼叫遞歸函式都會開辟一塊新的存盤空間, 所以性能不是很好
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/176998.html
標籤:JavaScript
上一篇:使用webpack命令打包時,報錯TypeError: Cannot read property 'presetToOptions' of undefined的解決辦法
下一篇:echarts js報錯 Cannot read property 'getAttribute' of null
