2021/1/5 js函式
技術標籤:小白訓練javascript
函式
函式定義
JavaScript 使用關鍵字 function 定義函式。是為執行特定任務的程式碼塊。
會在某程式碼呼叫它時被執行
作用:
1.簡化程式碼
2.方便維護
3.提高開發效率
4.提高了程式碼的複用性,減少程式碼冗餘
格式:
function 函式名(引數…){
函式執行的程式碼
}
【注意】函式先定義後呼叫
分類:
1.內建函式(官方提供的函式,系統自身擁有函式)
alert();
document.write();
console.log();
parseInt();
parseFloat();
2.自定義函式
根據引數和返回值的不同,可將函式分為四種。
1.無引數無返回值
2.有引數無返回值
3.無引數有返回值
4.有引數有返回值
函式的分類
引數:分為形參和實參。字面意思:形式引數和實際引數,理解為形式引數是實際引數的統稱,有點變數與變數名的意思。
返回值:對函式執行完成的結果的返回。用return。
return:結束當前函式,並將return後面的值(表示式/變數)作為函式的執行結果返回。
當我們需要對函式的運算結果進行不同的處理時,需要將函式的結果返回。
根據需求不同,使用不同的函式型別。
1.無引數無返回值
// 求1-100的和,將結果輸出到頁面。
function sum() {
var sum = 0;
for (var i = 1; i <= 100; i++) {
sum += i;
}
document.write(sum);
}
sum();
也就是在定義函式的時候函式名後邊沒有跟引數。一般在函式中的值都是確定的。
2.有引數無返回值
// 求1-n的和,將結果輸出到頁面。
function sum(n) {
var sum = 0;
for (var i = 1; i <= n; i++) {
sum += i;
}
document.write(sum);
}
sum(100);
在sum後面定義了引數n,當呼叫的時候再把引數傳進去。這樣引數變動的話修改比較容易,也不會出錯。
3.無引數有返回值
這時不需要在函式內輸出函式執行結果,只在有需要的時候進行呼叫輸出,可能在控制檯輸出、頁面彈出等不同的輸出方式。所以將函式執行結果先存放——用return和後面的值(表示式/變數)存放函式執行的結果。等需要呼叫輸出時,將表示式/變數賦值再輸出。
4.有引數有返回值
// 求1-n的和。
function sum(n) {
var sum = 0;
for (var i = 1; i <= n; i++) {
sum += i;
}
return sum;
// document.write(sum);
}
// 1.呼叫,將結果彈出
var a = sum(100);
// alert(a);
// 2 呼叫,將結果輸出到頁面上
document.write(a);
// 3.呼叫 將結果輸出到控制檯。
console.log(a);
封裝函式
函式封裝是一種函式的功能,它把一個或多個功能通過函式、類的方式封裝起來 對外只提供一個簡單的函式介面。
當寫程式的過程中需要執行同樣操作時,不需要再寫同樣的函式來呼叫,直接從函式庫裡面呼叫。
// 1.確定函式的執行程式碼:函式體。
// 2.找出變數(不確定值。),將其設定為形參
// 3.如果需要對返回結果進行不同的處理,則定義返回值。
var arr = ["蘇軾", "辛棄疾", "李白"];
function joint(arr) {
var str = "";
for (var i = 0; i <= arr.length - 1; i++) {
str += arr[i];
if (i == arr.length - 1) continue
str += "|";
}
return str;
}
alert(joint(arr));
arguments
當定義一個函式,引數的數量不固定時使用arguments來儲存實參。相當於函式的實參都在arguments裡裝著,且arguments的長度是可以動態改變的。
作用域
作用域是指變數存在的範圍
分為全域性變數和區域性變數。
- 全域性變數
直接寫在Script標籤中的變數,在頁面中的任意位置都可以訪問到。
在頁面開啟建立,在頁面關閉時銷燬。
- 區域性變數
區域性變數是定義在函式內部的變數.這個變數只能在函式內使用.例外,函式中的形參也是區域性變數。
每一次呼叫時建立,呼叫結束會銷燬。
【注意】如果區域性變數與全域性變數重名,則使用區域性變數。若函式內部沒有找到該變數,則去全域性變數中查詢。
console.log(b);
//定義一個變數b,此時為全域性變數
var b = 21;
//定義一個函式
function fun(b) {
var a = 0;
console.log(a);
console.log(b);
}
fun(5);
// console.log(b);
// console.log(a);
遞迴
遞迴:函式之間可以互相呼叫,如果函式內部呼叫了其自身,則我們稱其為遞迴呼叫。通常情況下都不會用遞迴,因為非常容易出錯,會浪費電腦執行資源。但面試時可能會問到。
特點:
-
函式自己呼叫自己
-
一般情況下還有引數
-
一般情況下有返回值.
方法:
-
找這一次計算與上一次計算的關係。
-
呼叫自身
-
找到函式結束的條件。
// 求n的階乘
function fac(n) {
if (n==1) {
return n;
}
return n*fac(n-1);
}
alert(fac(10));
function fac2() {
var result = 1;
for (var i = 1; i <= 10; i++) {
result *= i;
}
return result;
}
alert(fac2(10));