js學習 函式

2022-05-08 12:21:15 字數 2475 閱讀 5069

函式宣告

function funname(parameter){}

函式表示式,並把函式儲存在變數x中

//

不用給函式名,後續並不能直接用給定的函式名呼叫

var x = function(a);

x;//

返回的是乙個函式物件

x();//

呼叫函式

用函式建構函式定義乙個函式(引數, 表示式)

var myfunc = new function("a", "b", "return a + b");

函式提公升:宣告會自動提前,賦值的不提公升

myfunc(10);

function myfunc(x)

函式自動呼叫自己執行

(function callself())();

函式是物件

function

myfunc(){};

typeof myfunc;//

型別為 function

顯式引數:形參(類似c++)      隱式引數:實參(類似c++)

引數規則:對隱式引數不進行型別檢測,也不進行個數檢測

預設引數:如果沒有給隱式引數,那麼顯式引數的值為undefined

function

myfunc(x)

arguments物件:function的內建屬性

function

myfunc()

}

引數傳遞:按值傳遞(c++)

//

不是物件的是按值傳遞

var a = 0;

function ma(a)

ma(a);

//結果沒有變化

//隱式引數是按值傳遞

var c = [1,2,3];

function mc()

mc(c);

//c的值沒有變化

引數傳遞:按引用傳遞(c++)這個概念有點問題,還要再研究一下

var b = [1,2,3];

//顯示引數,且引數是乙個物件

function mb(b);

mb(b);

//b的值發生變化

函式呼叫,有4種呼叫方式,區別在於this的初始化

this指向呼叫函式的物件

//

作為乙個函式呼叫

function

myfunc()

//返回window物件,因為預設屬於window全域性物件

myfunc();

//

作為物件的方法呼叫

var myobj=

};myobj.myfunc();

//返回myobj物件:object

//

用建構函式呼叫函式,建構函式中的this沒有任何值

function myfunction()

//this指向例項化後的物件:myfunction{}

var myfunc = new myfunction();

//

作為函式方法呼叫函式

function myfunction(a,b,c)

//第乙個引數myobj會成為this

var a = 0, b = 0, c = 0;

myobj = myfunction.call(myobj, a, b, c);//

按引數乙個個對應給出

var arr = [0, 0, 0];

引數組合成乙個陣列

js閉包(python中也類似)

可訪問上一層函式作用域裡變數的函式

var add = (function

() ;

})();

//自呼叫函式

add();

add();

//計數器會遞增

var x = function();};

x; //

function();};

x(); //

function ()

x()();//

會執行alert("abc")

學習js函式 函式定義

函式的定義方法有三種 1.函式表示式 2.函式宣告 3,new function建構函式 這邊主要看下函式表示式和函式宣告 函式表示式 未省略標誌的 var alertname function namealert name alertname 博主 函式表示式 省略標誌的 var alertnam...

js函式學習

函式學習 作用 功能 塊的封裝。減少 的冗餘。1 函式的宣告 方式一 function 函式名 形參名1,形參名2 方式二 var 函式名 new function 形參1 形參2 函式執行體 注意 此宣告表明在js中函式是作為物件存在的。方式三 var 變數名 function 形參名1,形參名2...

JS學習之函式

doctype html utf 8 函式 title 舉例 function sayhi sayhi 函式的呼叫 案例 利用函式計算1 100之間的累加和,1.宣告函式 function getsum console.log sum 2.函式的呼叫 getsum script head body ...