一、函式的定義
函式,即方法,就是一段預先設定的功能代碼塊,可以反復呼叫,根據輸入引數的不同,回傳不同的值,函式也是物件,有三種函式定義的方式:函式宣告陳述句、函式定義運算式、Function建構式,
1、函式宣告陳述句
function 函式名([引數串列]){ } 例如: function foo(){ console.log(1); } foo();
該種方式定義的函式具有宣告提升的效果.
foo(); function foo(){ console.log(1); } // 變數宣告提升 console.log( a ); var a = 2;
2、函式定義運算式
以運算式方式定義的函式,函式的名稱是可以不需要的,
var 變數名 = function ([引數串列]) { } 變數名(); 例如: var fun = function(){ console.log("Hello"); } fun();
這種寫法將一個匿名函式賦值給變數,這時,這個匿名函式又稱函式運算式,因為賦值陳述句的等號右側只能放運算式,
3、Function建構式
Function建構式接收任意數量的引數,但最后一個引數始終都被看成是函式體,而前面的引數則列舉出了新函式的引數,
var add = new Function('x','y','return (x + y)'); // 等同于 function add(x, y) { return (x + y); } add();
請注意:
1. js中的函式沒有多載,同名的函式,會被后面的函式覆寫,
2. js中允許有不定數目的引數,后面介紹arguments物件,
3、本文是全新java大資料培訓課程檔案中的JavaScript函式定義引數呼叫的內容,如需完整課程Java大資料架構師等學習資源請私信我,
二、函式的引數
函式運行的時候,有時需要提供外部資料,不同的外部資料會得到不同的結果,這種外部資料就叫引數,定義時的引數稱為形參,呼叫時的引數稱為實參,
- 實參可以省略,那么對應形參為undefined
- 若函式形參同名(一般不會這么干):在使用時以最后一個值為準,
- 可以給引數默認值:當引數為特殊值時,可以賦予默認值,
- 引數為值傳遞,傳遞副本 ;參考傳遞時傳遞地址,操作的是同一個物件,
// 呼叫函式時,實參可以省略,則對應形參為undefined function add(a , b) { console.log(a + "+" + b + "=" + (a + b)); } add(3,4,5)//3+4=7 add(1);//1+undefined=NaN add();//undefined+undefined=NaN // 若函式形參同名(一般不會這么干):在使用時以最后一個值為準 function add2(a , a) { console.log(a); } add2(1,2); // 給引數默認值 function defaultValue(a){ a = a || "a"; return a; } console.log(defaultValue()); function f(a){ //若引數a不為undefined或null,則取本身的值,否則給一個默認值 (a !== undefined && a !== null) ? a = a : a = 1; return a; } console.log(f()); // 值傳遞 var num = 12; function change(n) { n = 30; } change(num); console.log(num); // 參考傳遞 var obj = {name: "tom"}; function paramter(o) { o.name = 2; } paramter(obj); console.log(obj.name); // 給形參o賦予了新的陣列 var obj2 = [1, 2, 3]; function paramter2(o){ o = [2, 3, 4]; o[1] = 3; } paramter2 (obj2); console.log(obj2)
三、函式呼叫
1. 常用呼叫方式
函式名([實參]);
存在回傳值可以變數接收,若接收無回傳值函式則為undefined,
2. 函式呼叫模式
function add(a,b){ return a+b; } var sum = add(1,2) console.log(sum);
3. 方法呼叫模式
var o = { m: function(){ console.log(1); } }; o.m();
本文是全新java大資料培訓課程檔案中的JavaScript函式定義和引數呼叫的內容,如需完整課程Java大資料架構師等學習資源請私信我,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/373924.html
標籤:JavaScript
上一篇:JS設計模式之建造者模式
下一篇:超基礎的機器學習入門-原理篇
