四、函式初級
什麼是函式: 具有特定功能的**塊
函式與方法的區別: 呼叫方式的不同: 函式通過函式名 | 方法通過呼叫者.語法呼叫
如何定義函式:
function 函式名(引數列表)
函式的分類:
無參函式:
function fn1()
fn1();
有參函式:
function fn2(a,b)
fn2(10,20);
1、函式的定義
es5中定義函式
function 函式名 (引數列表)
var 函式名 = function (引數列表)
es6中定義函式
let 函式名 = (引數列表) =>
匿名函式
(function (引數列表) )
// 匿名函式需要自呼叫
(function (引數列表) )(引數列表);
var fn3=function()
fn3();
匿名函式的自呼叫:
(function())()
為什麼要出現匿名函式的自呼叫
在es5 的時候,沒有塊級作用域的概念,想要產生區域性作用域的變數只能通過在函式體內部定義變數了, 所以匿名函式的自呼叫很多時候是為了生成乙個區域性的作用域
(function())();
2、函式的呼叫
函式名(引數列表)
注意: 函式的呼叫()一定不可以省略,引數列表看情況(不管需不需要,均可以傳或不傳)
系統不會在()()之間新增; 作為結束語句,需要新增分號時一定需要手動新增
3、函式的引數
js中有參函式呼叫的原則:
js中只有位置引數,沒有關鍵字引數
傳引數的時候, 無論傳多少個值,嚴格按照位置引數進行一一對應進行傳值, 多傳的引數沒有對應的位置引數進行接收時會自動被丟棄
在傳參的時候指定哪個值為多少時要按照位置進行傳值,按照引數名進行傳值是無效的
function func1()
// 傳不傳引數均可以呼叫
func1();
func1(10, 20);
function func2(a, b)
func2()
func2(10)
func2(10, 20)
func2(10, 20, 30)
預設值引數
使用預設值引數時,傳入的值也是按照位置進行傳值的
不管該位置引數是否有預設引數,只要該位置有值傳進來該位置上的引數值就會被替代
function func3(a, b=20, c, d=40)
var temp = 1000;
func3(10, 100, temp) // 函式呼叫傳入的實際值,或擁有實際值的變數為實參
js中函式傳參時的大致規則:
個數不需要統一
function fn (a, b, c)
fn(100);
function fn (a)
fn(100, 200, 300) // 200,300被丟棄
可以任意位置具有預設值
function fn (a, b=20, c, d=40)
fn(100, 200, 300);
通過...語法接收多個值
function fn (a, ...b)
fn(100, 200, 300);
// ...變數必須出現在引數列表最後
函式的引數小結::
1.實參與形參個數可以不匹配,隨意規定
2.形參可以設定預設值(並非為py中的關鍵字引數)
3.實參對形參進行傳值時,完全採用位置匹配(eg:第n個實參一定將值傳遞給第n個形參)
4、返回值
function fn ()
// 1.可以空return操作,用來結束函式
// 2.返回值可以為任意js型別資料
// 3.函式最多只能擁有乙個返回值
js的函式只能返回乙個值, 這個值可以為任意型別(如果想返回多個值,將多個值放到陣列或物件中)
let func4 = () => ;
console.log(func4())
函式的返回值小結::
1.函式的返回值有return來明確,沒有明確,則相當於返回undefined
2.函式只能返回乙個值
3.函式的返回值就是函式的執行結果,也就是函式值
---------------------
原文:
python學習筆記(二) python基礎函式
python之所以強大好用,離不開可以呼叫的各種庫,同時也和他自身函式相關,下面為學習python函式相關知識後整理知識點。1 python函式引數 python函式定義簡單但靈活度非常大。除正常定義的必選引數外,還可以使用預設引數,可變引數,關鍵字引數。預設引數 def power 5 x 2 在...
XML Web services 基礎結構
摘至msdn.若要在 web 的多樣性世界裡取得成功,在涉及到作業系統 物件模型和程式語言的選擇時,xml web services 不能有任何傾向性。同樣,若要使 xml web services 像其他基於 web 的技術一樣被廣泛採用,則它們必須是 xml web services 採用一種基...
結構體基礎
什麼是結構體?簡單的來說,結構體就是乙個可以包含不同資料型別的乙個結構,它是一種可以自己定義的資料型別,它的特點和陣列主要有兩點不同,首先結構體可以在乙個結構中宣告不同的資料型別,第二相同結構的結構體變數是可以相互賦值的,而陣列是做不到的,因為陣列是單一資料型別的資料集合,它本身不是資料型別 而結構...