js中的函式
阿新 • • 發佈:2021-01-06
技術標籤:jsjavascript
函式
作用:
- 簡化程式碼
- 方便維護
- 提高開發效率
- 提高了程式碼的複用性,減少程式碼冗餘
格式:
function 函式名(引數...){
函式執行的程式碼
}
//【注意】函式先定義後呼叫
分類:
1.內建函式(官方提供的函式,系統自身擁有函式);
alert();//彈出
document.write();//輸出在網頁中
console.log();//輸出在控制欄
parseInt();//取整
parseFloat();//可以顯示出浮點數
2.自定義函式
根據引數和返回值的不同,可將函式分為四種。
- 無引數無返回值
function sum() {
var sum = 0;
for (var i = 1; i <= 100; i++) {
sum += i;
}
alert(sum);
}
sum();//呼叫
- 有引數無返回值
形參 形式上引數
實參 實際引數
// 求1-n的和,將結果輸出到頁面。
function sum(n) {
var sum = 0;
for (var i = 1; i <= n; i++) {
sum += i;
}
document.write(sum);
}
sum(100);
- 無引數有返回值
// 求1-100的和,將結果輸出到頁面。
function sum() {
var sum = 0;
for (var i = 1; i <= 100; i++) {
sum += i;
}
return sum;
// document.write(sum);
}
// 1.呼叫,將結果彈出
var a = sum();
// alert(a);
// 2 呼叫,將結果輸出到頁面上
document.write(a);
// 3.呼叫 將結果輸出到控制檯。
console.log(a);
// 返回值:對函式執行完成的結果的返回。
// return:結束當前函式,並將return後面的值(表示式/變數)作為函式的執行結果返回。
// 當我們需要對函式的運算結果進行不同的處理時,需要將函式的結果返回。
- 有引數有返回值
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是用來儲存實參。
function joint() {
var str = arguments[0];
for (var i = 1; i < arguments.length; i++) {
str = str + "|" +arguments[i];
}
document.write(str);
}
joint("蘇軾","辛棄疾","李白","李商隱","杜甫");//可以一直新增都會用“|”連線起來
作用域
作用域:變數存在的範圍
全域性變數:
- 直接寫在Script標籤中的變數,在頁面中的任意位置都可以訪問到。
- 在頁面開啟建立,在頁面關閉時銷燬。
區域性變數:
- 區域性變數是定義在函式內部的變數.這個變數只能在函式內使用.例外,函式中的形參也是區域性變數.
- 每一次呼叫時建立,呼叫結束會銷燬。
【注意】:
- 如果區域性變數與全域性變數重名,則使用區域性變數。若函式內部沒有找到該變數,則去全域性變數中查詢。
遞迴
函式之間可以互相呼叫,如果函式內部呼叫了其自身,則我們稱其為遞迴呼叫。
特點:
- 函式自己呼叫自己。
- 一般情況下還有引數。
- 一般情況下有返回值。
方法:
- 找這一次計算與上一次計算的關係。
- 呼叫自身
- 找到函式結束的條件。
//示例: 求n的階乘
function fac(n) {
if (n==1) {
return n;
}
return n*fac(n-1);
}
//示例:設有一對新生兔子,從第四個月開始每個月初都會生一對兔子,新生的兔子從第四個月開始也會每個月初生一對兔子,按照這個規律,假設兔子沒有死亡,n(n<=20)個月月末後共有多少對兔子。
function rabbit(n) {
if (n<4) {
return 1;
}
return rabbit(n-1)+rabbit(n-3);//可獲得規律,本月成熟兔:上個月的成熟兔+上上上個月的成熟兔
}
alert(rabbit(9));