什么是函數(shù)
類似java中的方法依痊,是一個(gè)可以可復(fù)用的代碼塊蛙酪,具有特定的聲明和使用規(guī)則齐苛。
創(chuàng)建函數(shù)
在ECMAScript中函數(shù)有以下幾種創(chuàng)建方式
第一種
function函數(shù)名稱(參數(shù)列表){
函數(shù)體;
}
第二種
var函數(shù)名稱=function(參數(shù)列表){
函數(shù)體;
}
第三種
Var函數(shù)名稱=new Function(參數(shù)列表,函數(shù)體);
以上操作,都可以創(chuàng)建函數(shù)桂塞,我們只要求掌握第一種與第二種凹蜂,對(duì)于第三種大家了解就可以。
調(diào)用函數(shù)
函數(shù)可以通過(guò)其名字加上括號(hào)中的參數(shù)進(jìn)行調(diào)用阁危。
示例1
type="text/javascript">
//使用function函數(shù)名稱(參數(shù)列表){}方式來(lái)創(chuàng)建函數(shù)
function add(a, b) {
alert(a + b);
}
//調(diào)用函數(shù)
add(10, 20);
示例2
type="text/javascript">
//使用var函數(shù)名稱=function(參數(shù)列表)來(lái)創(chuàng)建函數(shù)
var add = function(a, b) {
alert(a + b);
}
//函數(shù)調(diào)用
add(10, 20);
示例3
type="text/javascript">
var add = new Function("a","b", "alert(a+b)");
add(10, 20);
問(wèn)題:如果我們?cè)谡{(diào)用函數(shù)時(shí)玛痊,使用add(1,2,3,4)是否會(huì)出現(xiàn)問(wèn)題哪?
如果是在java中我們這樣調(diào)用一定會(huì)有問(wèn)題的,但是對(duì)于javascript來(lái)說(shuō)狂打,是不會(huì)有問(wèn)題的擂煞。
簡(jiǎn)單的說(shuō),也就是函數(shù)調(diào)用時(shí)傳遞的參數(shù)不一定要與函數(shù)聲明時(shí)的參數(shù)個(gè)數(shù)一致趴乡。
問(wèn)題:如果調(diào)用時(shí)傳遞的參數(shù)與函數(shù)定義時(shí)參數(shù)個(gè)數(shù)不一致对省,那么我們?cè)诤瘮?shù)中如果獲取多余的參數(shù)哪?
在javascript中有一個(gè)特殊的對(duì)象arguments,我們可以通過(guò)它來(lái)獲取所有函數(shù)中的參數(shù)。
type="text/javascript">
//創(chuàng)建函數(shù)
function add(a, b) {
//在函數(shù)中如果要獲取所有參數(shù)列表中的信息可以使用argument來(lái)操作
for(vari=0;i
alert(arguments[i]);
}
}
add(1,2,3,4);
函數(shù)參數(shù)與返回值
在java中我們定義一個(gè)方法晾捏,如果這個(gè)方法有返回值蒿涎,我們必須做到以下兩點(diǎn):
1.在方法聲明時(shí),必須聲明其返回值類型惦辛,如果無(wú)返回值需要使用void劳秋。
2.方法有返回值,在方法中需要使用return來(lái)返回結(jié)果胖齐。
那么我們?cè)趈avascript中應(yīng)該怎樣處理一個(gè)函數(shù)的返回值哪?
對(duì)于javascript來(lái)說(shuō)玻淑,我們不必須在創(chuàng)建函數(shù)時(shí),來(lái)聲明其返回值類型市怎,無(wú)返回值也不需要使用void來(lái)聲明,但是岁忘,如果一個(gè)函數(shù)要想返回結(jié)果,我們?cè)诤瘮?shù)中必須使用return來(lái)返回結(jié)果区匠。
type="text/javascript">
//創(chuàng)建函數(shù)
function add(a, b) {
//返回a與b的和
return a+b;
}
//在調(diào)用函數(shù)時(shí)干像,我們就可以直接使用一個(gè)變量來(lái)接收函數(shù)的返回結(jié)果
var sum=add(1,2,3,4);
alert(sum)
Javascript全局函數(shù)介紹
Javascript事件介紹
事件通常與函數(shù)配合使用,這樣我們可以通過(guò)發(fā)生的事件來(lái)驅(qū)動(dòng)函數(shù)執(zhí)行.
常見(jiàn)事件:
事件綁定
在javascript中事件經(jīng)常與函數(shù)一起使用驰弄,那么我們介紹一下怎樣將一個(gè)事件與函數(shù)綁定到一起麻汰,簡(jiǎn)單說(shuō),就是某個(gè)事件被觸發(fā)后戚篙,函數(shù)如果被調(diào)用五鲫。
1.html事件屬性
onclick="displayDate()">點(diǎn)擊這里
2.html dom分配事件
document.getElementById("myBtn").onclick=function(){displayDate()};
阻止默認(rèn)事件
if(e&&e.stopPropagation){
e.preventDefault();
}else{
window.event.returnValue = false;
}
阻止事件傳播
if(e&&e.stopPropagation){
e.stopPropagation();
}else{
window.event.cancelBubble = true;
}
this關(guān)鍵字
this經(jīng)過(guò)事件的函數(shù)進(jìn)行傳遞的是html標(biāo)簽對(duì)象,即當(dāng)前對(duì)象岔擂。
<input id="btn" name="btn" type="btn" value="btn123" onclick="fn(this)">
<script>
function fn(obj){
console.log(this.name);
}
</script>