淺析JavaScript事件和方法
單擊一個(gè)超鏈接觸發(fā)事件
1.用a標(biāo)簽的onclick
<a href="#" onclick="js代碼">
這種寫(xiě)法呢,存在一種弊端,就是點(diǎn)擊后會(huì)刷新一次頁(yè)面,回到頁(yè)面頂端。
想不刷新如何做的呢?
<a href="javascript:void(0)" onclick="js代碼">
2.#與javascript:void(0)的區(qū)別
超鏈接為“死鏈”時(shí),使用#與javascript:void(0);的區(qū)別。
Void(0)沒(méi)有用的值,不會(huì)去任何地方,就沒(méi)有意義了
而#會(huì)刷新一次當(dāng)前頁(yè)面。
3.再或者、用a標(biāo)簽的href
<a href="javascript: js代碼 ">
只有超鏈接的href中的JavaScript中才需要加“javascript:”,
因?yàn)樗皇鞘录?,而是把”javascript:”看成像“http:”、“ftp:”、“thunder://”、“ed2k://”、“mailto:”一樣的網(wǎng)絡(luò)協(xié)議,交由js解析引擎處理。
方法的特別強(qiáng)調(diào)
1.不要另起一行
一般在js中編寫(xiě)大括號(hào)都是直接跟在后面而不要另起一行,
原因是js會(huì)在語(yǔ)句末尾自動(dòng)增加”分號(hào)”,如果將大括號(hào)另起一行,則return語(yǔ)句后自動(dòng)增加“分號(hào)”后,返回值就變成了undefined了。
2.不需要聲明返回值類(lèi)型
不需要聲明返回值類(lèi)型、參數(shù)類(lèi)型。函數(shù)定義以function開(kāi)頭。
JavaScript中不像C#和java那樣要求所有路徑都有返回值沒(méi)有返回值就是undefined。
3.沒(méi)有方法重載
JavaScript中沒(méi)有方法重載。
方法中寫(xiě)參數(shù)叫命名參數(shù)
用戶(hù)調(diào)用計(jì)算多個(gè)數(shù)的和的方法,如何獲取方法中有多少個(gè)參數(shù)呢?
請(qǐng)使用arguments對(duì)象!
匿名函數(shù)
1.方式一
var f1=function(p1,p2){ return p1+p2; };//將函數(shù)賦值給一個(gè)變量
匿名函數(shù)沒(méi)法調(diào)用,只能賦值給一個(gè)變量,由于是賦值語(yǔ)句,后面要加分號(hào)
應(yīng)用:
document.getElementById(‘btn').onclick=function(){}
2.方式二
(function(p1,p2){alert(p1+p2);})(20,30);
3.方式三
var m1=new Function(“p1”,”p2”,”p3”,”return p1+p2+p3”);
alert(m1(1,2,3));性能低
這種匿名函數(shù)的用法在jQuery中的非常多
擴(kuò)展方法prototype
通過(guò)類(lèi)對(duì)象的prototype設(shè)置擴(kuò)展方法,
擴(kuò)展方法的聲明要在使用擴(kuò)展方法之前執(zhí)行。JS的函數(shù)沒(méi)有專(zhuān)門(mén)的函數(shù)默認(rèn)值的語(yǔ)法,但是可以不給參數(shù)傳值,不傳值的參數(shù)值就是undefined,自己做判斷來(lái)給默認(rèn)值。
var msg ='xiaoming@111.com';
String.prototype.isEmail = function(){
return this.indexof('@')!= -1 ?true:false;
};
alert(msg.isEmail);
事件
1.調(diào)用事件
2.注冊(cè)事件
一定是在頁(yè)面加載完成了以后,才能給頁(yè)面的元素注冊(cè)事件。
所以 onload = function(){
//在這里注冊(cè)事件
};
頁(yè)面加載事件
<script type="text/javascript">
//刷新
//location.reload();
onload=function(){
alert("頁(yè)面加載了");
};
onunload =function(){
alert("頁(yè)面關(guān)閉了");
};
onbeforeunload= function(){
alert("頁(yè)面關(guān)閉之前觸發(fā)");
};
</script>
以上就是本文的全部?jī)?nèi)容了,希望能夠讓大家對(duì)javascript的事件和方法有新的認(rèn)識(shí)
相關(guān)文章
詳解JavaScript中的類(lèi)型判斷與類(lèi)型轉(zhuǎn)換
這篇文章主要給大家講解一下JavaScript中的類(lèi)型判斷與類(lèi)型轉(zhuǎn)換的基本概念和使用方法,對(duì)我們的學(xué)習(xí)JavaScript的類(lèi)型判斷與轉(zhuǎn)換有一定的幫助,需要的朋友可以參考下2023-07-07javascript addBookmark 加入收藏 多瀏覽器兼容
不錯(cuò)的加入收藏代碼,加入了對(duì)一些常見(jiàn)瀏覽器的判斷,更好的體現(xiàn)用戶(hù)體驗(yàn),兼容了ie,firefox.2009-08-08談?wù)凧avaScript類(lèi)型系統(tǒng)之Math
Math 對(duì)象并不像 Date 和 String 那樣是對(duì)象的類(lèi),因此沒(méi)有構(gòu)造函數(shù) Math(),像 Math.sin() 這樣的函數(shù)只是函數(shù),不是某個(gè)對(duì)象的方法。您無(wú)需創(chuàng)建它,通過(guò)把 Math 作為對(duì)象使用就可以調(diào)用其所有屬性和方法2016-01-01es6基礎(chǔ)學(xué)習(xí)之解構(gòu)賦值
解構(gòu)賦值語(yǔ)法是一個(gè) Javascript 表達(dá)式,這使得可以將值從數(shù)組或?qū)傩詮膶?duì)象提取到不同的變量中。這篇文章主要給大家介紹了關(guān)于es6基礎(chǔ)學(xué)習(xí)之解構(gòu)賦值的相關(guān)資料,需要的朋友可以參考下2018-12-12微信小程序?qū)崿F(xiàn)modal彈出框遮罩層組件(可帶文本框)
這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)modal彈出框遮罩層組件(可帶文本框)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12解析JavaScript中instanceof對(duì)于不同的構(gòu)造器或許都返回true
這篇文章主要是對(duì)JavaScript中instanceof對(duì)于不同的構(gòu)造器或許都返回true進(jìn)行了詳細(xì)的解析,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12