語法:python
// 語法 function [函數名](形參1,形參2,形參3...){ [函數體代碼]; }
// 無參函數 function func1() { console.log('hello world'); } func1(); // hello world // 有參函數 function func2(a, b) { console.log(a, b); } func2(1, 2); // 1 2 func2(1, 2, 3, 4, 5, 6, 7, 8, 9); // 1 2(多了不要緊 只要對應的數據) func2(1); // 1 undefined(少了也不要緊, 未定義的會用undefined填補)
function cook(isBad,a,b,c){ // isbad形式參數 if (isBad){ alert('作飯'); }else{ alert('點一個外賣'); } } var bad = false; //刀壞了 cook(bad); // 點一個外賣
函數中的arguments參數: 可以獲取到函數接受到的全部的參數數組
function func3(a, b, c) { console.log(arguments); } func3(1, 2, 3); // 執行結果: /* Arguments(3) [1, 2, 3, callee: ƒ, Symbol(Symbol.iterator): ƒ] 0: 1 1: 2 2: 3 */ // 使用arguments判斷傳參的確切性 function func4(a, b) { if (arguments.length < 2) { console.log('參數傳少了!'); } else if (arguments.length > 2) { console.log('參數傳多了!'); } else { console.log('正常執行'); } } func4(1, 2, 3); // 參數傳多了! func4(1); // 參數傳少了! func4(1, 2); // 正常執行
function func5() { // 返回一個值 return 666 } console.log(func5()); // 666 function func6(a, b) { // 返回多個值, 多個值必須被包含否則就會返回逗號前面的那一個值. return a, b } console.log(func6(1, 2)); // 2 function func7(a, b) { return [a, b] } console.log(func7(1, 2)); // [1, 2]
var division = function(a,b){ return a/b; } // 調用 division(10,2) // 5
/*function () { console.log('哈哈哈'); }*/ let res = function() { // 函數還能夠被賦值, 對於匿名函數這也賦值雖然沒有什麼意義, 可是爲了然函數能正常執行, 仍是賦值一個變量吧~ console.log('哈哈哈'); }; res(); // 哈哈哈
// 若是箭頭函數不須要參數或須要多個參數,就是用圓括號表明參數部分 var f = () => 5; // 等同於 var f = function(){return 5}; let func8 = v => v*2; // 箭頭左邊的是形參 右邊的是返回值 console.log(func8(2)); // 4 let func9 = function (v) { // 上面與下面做用等同 return v * 2; }; console.log(func9(2)); // 4`
/* 函數定義: 無參, 有參 函數調用: 無參直接調用. 有參調用傳值多餘部分不要, 少的部分用undefined提補. arguments: 能夠接受全部參數, 能夠經過arguments.length獲取傳入的參數個數. 函數返回值: 單個返回值. 多個返回值需被包含, 若是不包含只返回逗號前面一個值. 匿名函數: 匿名函數可被賦值. 箭頭函數: 無參: let a = () => 返回值; 有參: let a = 形參 => 返回值; */
局部變量:markdown
全局變量:閉包
變量生存週期:ide
做用域函數
跟python查找變量的順序一致atom
var city = "BeiJing"; function f() { var city = "ShangHai"; function inner(){ var city = "ShenZhen"; console.log(city); } inner(); } f(); // 輸出結果是? ShenZhen // ES6推薦使用let let city = "BeiJing"; function f() { let city = "ShangHai"; function inner(){ let city = "ShenZhen"; console.log(city); } inner(); } f(); // 輸出結果是? ShenZhen
var city = "BeiJing"; function Bar() { console.log(city); } function f() { var city = "ShangHai"; return Bar; } var ret = f(); ret(); // 打印結果是? BeiJing // ES6推薦使用let let city = "BeiJing"; function Bar() { console.log(city); } function f() { let city = "ShangHai"; return Bar; } let ret = f(); ret(); // 打印結果是? BeiJing
var city = "BeiJing"; function f(){ var city = "ShangHai"; function inner(){ console.log(city); } return inner; } var ret = f(); ret(); // ShangHai // ES6推薦使用let let city = "BeiJing"; function f(){ let city = "ShangHai"; function inner(){ console.log(city); } return inner; } let ret = f(); ret(); // ShangHai