函式小結
1、【函式的定義】
1.1、JavaScript 使用關鍵字 function 定義函式。函式可以通過宣告定義,也可以是一個表示式。
1.2【函式的作用】
實現特定功能的程式碼,可複用。
1.3【函式的封裝】
即把可以實現一定功能的程式碼,封裝成一個函式。
1.4【函式的好處】
1、提高開發效率
2、複用,減少程式碼量
3、開發、維護、更靈活,把功能分開來寫,團隊開發效率高
4、引數、返回值,讓函式更靈活
1.4.【函式的三要素】
1. 函式名
2. 返回值return
注:函式100%有返回值。
注: 若寫了,則返回return後的內容。若沒寫return則返回undefined
注:return具備終止函式的功能。若需要返回多個值,需要return後面的內容是引用資料型別。
3.引數
1、形參(形式引數)
在函式宣告的時候
2、實參(實際引數)
在呼叫函式的時候
注:形參的個數比實參多,多的形引數為undefined。實參的個數比形參多,多的實引數不會使用。
2、【函式的宣告】
2.1字面量宣告function F70 () {函式體}
2.2建構函式宣告let F70 = new Function();
3【呼叫函式(執行函式體)】
書寫格式:函式名 小括號
// 函式會不會執行不代表呼叫,執不執行取決於函式是否被呼叫
function serach() {
console.log(`您的當餘額為1000`);
}
// 呼叫函式,此時才能執行{}中的console.log(`您的當餘額為1000`)
serach();
4、【匿名函式】
//函式表示式(匿名函式表示式)
let F70 = function F71() {
console.log(`asdadasd`);
}
F70();//asdadasd
F71();//F71 is not defined
console.log(F70.name);//F71 (F70的名字是F71,但是呼叫的時候不能使用F71(),還是必須使用F70()呼叫,否則會報錯F71 is not defined)
5、【類陣列】
函式名.arguments
arguments是函式的屬性,返回所有的實參內容
可以類似於陣列的使用方式進行值的獲取
注:
1、形參和實參都寫在{}中
2、形參與實參一一對應
3、以形參接收為主,新參與實參可以同名,不能以name 與name 對比接收
4、函式的呼叫,在函式呼叫的時候是實參
let inputName = "YY"
let inputAge = 18;
let inputGender = "男"
let hobby=1234
let num=1000
arr(inputName, inputAge, inputGender,hobby,num);
function arr(name, age, gender, hobby) {
//arr函式的宣告,在函式宣告的時候是形參。
console.log(`你好
我叫${name}
今年${age}
我是${gender}生
我的愛好是${hobby}
`);
//輸出所有實參內容
console.log(arr.arguments);
console.log(arr.arguments[arr.arguments.length-1]);
// 輸出所有實參的個數
console.log(arr.arguments.length);//5
//函式名.length 輸出的是形參的個數
console.log(arr.length);//4
};
6、【不定引數 ...形參】
注:
1、接受多的實參內容(以陣列形式)
2、只能寫在最後一個形參位置(其他位置,會報錯)
function arr1(a, b, ...c) {
console.log(a, b, c);
console.log(arr1.length); //2
}
arr1(1, 2, 3, 4, 5, 6);//1 2 [ 3, 4, 5, 6 ]
function arr2(a, ...b,c) {
console.log(a, b, c);
console.log(arr2.length);
}
arr2(1, 2, 3, 4, 5, 6);//報錯(Rest parameter must be last formal parameter)
7、【箭頭函式】
1、省略function關鍵字
2、如果只有一個形參,可以省略小括號
3、如果函式體只有一條語句,可以省略打括號
4、如果函式體只有一條語句,並且需要返回這條語句的結果。
則可以省略return關鍵字
5、不可以使用arguments
6、不會把自己的this繫結到函式上
7、不可以用作建構函式
let arr1 = a => a + 1;
let arr2 = arr1(100);
console.log(arr2);//101
let arr3 = (a, b, ...c) => {
let f00 = a + b;
return f00;
}
console.log(arr3(1, 2)); //3
8、【回撥函式】
當一個函式A,提供給函式B當引數,則A就是回撥函式
function a(temp) {
console.log("F70");
temp();
}
function b() {
console.log("F71");
}
a(b);//F70與F71都會輸出
9、【陣列的排序】
9.1升序與降序
let arr3 = [1, 30, 5, 11, 8, 50];
// 升序
let arr1 = arr3.sort((a, b) => a - b);
console.log(arr1);//[ 1, 5, 8, 11, 30, 50 ]
// 降序
let arr2 = arr3.sort((a, b) => b - a);
console.log(arr2);//[ 50, 30, 11, 8, 5, 1 ]
10、【陣列的方法every】
類似於"與",一假全假。
判斷陣列中的每個值,是不是都滿足需求
注:所有都滿足返回true,有1個不滿足,則返回false
let arr = [1, 30, 5, 11, 8, 50];
let state = arr.every(a => a % 2 == 0);
console.log(state); //false
11、【陣列的方法some】
類似於"或",一真全真。
判斷陣列中的每個值,是不是都滿足需求
注:只要有1個滿足,就返回true,都不滿足才會返回false
let arr = [1, 30, 5, 11, 8, 50];
state = arr.some(a => a % 2 == 0);
console.log(state); //true
12、【陣列的方法filter】
過濾。
返回滿足條件的值
let arr = [1, 30, 5, 11, 8, 50];
let state = arr.filter(a => a % 2 == 0);
console.log(state); //[30,8,50]
13、【陣列的方法map】
遍歷陣列中的每個值,執行箭頭函式的操作,並把最終結果,已陣列的方式返回。
(有返回值)。
注:不會改變原陣列。
let arr = [1, 30, 5, 11, 8, 50];
let state = arr.map(a => a % 2 == 0);//[ false, true, false, false, true, true ]
let state = arr.map(a => a-1);//[ 0, 29, 4, 10, 7, 49 ]
console.log(state);
14、【陣列的方法forEach】
遍歷陣列中的每個值,執行箭頭函式的操作,並把最終結果.
(無返回值)
注:不會改變原陣列,不能使用break
let arr = [1, 30, 5, 11, 8, 50];
let state = arr.forEach(a => a-1);
console.log(state);//undefined(說明無返回值);
arr.forEach(a => { console.log(a - 1); });//0
//29
//4
//10
//7
//49
15、【立即執行函式】
建立即呼叫,呼叫即銷燬
適用場景:關於一次性變數(時間)
(function F70() {
console.log("F70");
})();
16、【交集、並集、差集】
16.1交集
let arr1 = [1, 2, 3];
let arr2 = [2, 3, 4];
let intersect = arr1.filter(a => arr2.includes(a));
console.log(intersect);//[2,3]
16.2並集
let arr1 = [1, 2, 3];
let arr2 = [2, 3, 4];
let union=new Set([...arr1,...arr2]);
console.log([...union]);//[1,2,3,4]
16.3差集
let arr1 = [1, 2, 3];
let arr2 = [2, 3, 4];
let difference = arr2.filter(a => !arr1.includes(a));
console.log(difference);//4
相關文章
- 函式ZwQuerySystemInformation小結函式ORM
- Oracle 函式小結Oracle函式
- RANK函式小結函式
- mysql 字元函式小結MySql字元函式
- php陣列函式小結PHP陣列函式
- DB2 時間函式小結 .DB2函式
- 關於字串的功能函式小結字串函式
- mysql日期函式小結及個人實驗MySql函式
- Matlab產生隨機數函式小結Matlab隨機函式
- 函式計算Python連線SQLServer小結函式PythonSQLServer
- OpencV_Python影象濾波函式小結OpenCVPython函式
- jQuery操作iframe中js函式的方法小結jQueryJS函式
- 生成函式小記函式
- 鑲嵌資料集工具小結(十)函式鏈函式
- 函式計算安裝依賴庫方法小結函式
- 執行緒建立的函式及應用小結執行緒函式
- 程序間通訊函式介面及應用模板小結函式
- 第九小節 函式函式
- 分析函式牛刀小試函式
- php函式總結PHP函式
- JavaScript函式繫結JavaScript函式
- Oracle 函式總結Oracle函式
- 小議分析函式中排序對結果的影響(二)函式排序
- 小議分析函式中排序對結果的影響(一)函式排序
- SAP ABAP 函式總結 常用函式解釋函式
- oracle函式測試小記Oracle函式
- oracle分析函式_小貼(一)Oracle函式
- 函式fgets和fputs、fread和fwrite、fscanf和fprintf用法小結函式
- frozenset凍結集合函式函式
- mysql日期函式總結MySql函式
- PHP常用函式總結PHP函式
- Oracle常用函式總結Oracle函式
- php 常用函式總結PHP函式
- SQL Server函式總結SQLServer函式
- 勢函式演算法小記?函式演算法
- 8個CSS函式的小技巧CSS函式
- 微信小程式函式呼叫監控微信小程式函式
- 技術中的小函式之道函式