javascript編程起步(第一課)
不管你以前學(xué)沒有學(xué)過javascript,本教程都能帶您進(jìn)入javascript的殿堂,領(lǐng)悟javascript的魅力。
? 大家來到這里,都是javascript的愛好者,對(duì)javascript都多多少少有一定的理解。關(guān)于javascript
的歷史等就不做介紹了,我們直接來學(xué)習(xí)它,用它。
? 也許大部分人都認(rèn)為javascript是在客戶端運(yùn)行的,其實(shí)不然。javascript有兩種不同的運(yùn)行環(huán)境,
一個(gè)是在服務(wù)器端的javascript,另一個(gè)就是客戶端的javascript了。還有就是javascript也是面向?qū)ο?br />的語言。
? 作為第一課,只是給大家一個(gè)簡(jiǎn)單的認(rèn)識(shí),東西不是太多。主要有以下三個(gè)方面:
? 1、在頁面添加javascript
? 2、javascript的數(shù)據(jù)類型
? 3、javascript最基本的三個(gè)對(duì)話框
? 關(guān)于怎么添加javascript,我想大家都知道,就是
? <script language="javascript">?? //這行是javascript腳本標(biāo)記,斜杠后面的就是注釋了
? document.write("在頁面顯示的javascript") //在頁面顯示一句話
? </script>
? /*這也是注釋,
??? 不過是多行的。
? */
? 我想這個(gè)今天就不細(xì)講了,留到下一課講,就當(dāng)是這課的作業(yè)吧,就是關(guān)于適應(yīng)各種環(huán)境的javascript
的添加。如不支持javascript的瀏覽器,我們?cè)摷尤胄┦裁床拍懿蛔尀g覽器顯示javascript的源代碼等等。
? 第二個(gè)也就是今天講的最重要的一個(gè),就是javascript的數(shù)據(jù)類型,主要有以下幾個(gè)基本的類型。
? 字符串(string)
? 數(shù)字(number)
? 布爾值(boolean)
?
? 字符串就是由一連串的字符組成的序列。包括字母、數(shù)字以及標(biāo)點(diǎn)符號(hào)。當(dāng)然還可以是漢字等。簡(jiǎn)單一點(diǎn)
就是表示文本信息。
? 數(shù)字又分為兩類:整型數(shù)字和浮點(diǎn)型數(shù)字。
? 整數(shù)包括正整數(shù),零和負(fù)整數(shù)。
? javascript中的數(shù)字可以使用十進(jìn)制、八進(jìn)制和十六進(jìn)制來書寫。方法如下:
? 十進(jìn)制:15(直接寫數(shù)字即可)
? 八進(jìn)制:017(要以零做為引導(dǎo)數(shù)字)
? 十六進(jìn)制:0xf(要以0x做為引導(dǎo)數(shù)字)
? 浮點(diǎn)型數(shù)字也叫實(shí)數(shù),為了方便,也可以使用科學(xué)記數(shù)法來表示:
? 1.13e1、1.5e3(等價(jià)于1.5乘10的3次方)
? javascript的數(shù)字范圍大約為10的負(fù)308次方到10的308次方之間。
? javascript中還有一個(gè)特殊的數(shù)字值NaN(not a number),javascript 用nan表示這個(gè)無意義的結(jié)果。
? 布爾值:true和false,在計(jì)算機(jī)中一般用1表示true,用0表示false。
? 空值就是null,即不表示任何東西。
? 未定義值undefined,有時(shí)等于null,有時(shí)可能是出了問題。
? 特殊字符:也叫轉(zhuǎn)義字符。是一些以反斜杠開頭的不可顯示的特殊控制字符。
? \b:表示退格
? \n:表示換行
? 等等。
? alert()方法的使用:
? <script language="javascript">
? alert("在頁面上顯示警告對(duì)話框");
? </script>
? alert()是javascript產(chǎn)生一個(gè)帶確認(rèn)按鈕的對(duì)話框,上面顯示括號(hào)內(nèi)的信息。
? confirm()方法的使用:
? <script language="javascript">
? confirm("在頁面上顯示確認(rèn)對(duì)話框");
? </script>
? confirm()和alert()差不多,不同的就是多了個(gè)取消按鈕。按確定返回true,按取消返回false。
? <script language="javascript">
? var con;
? con=confirm("你們喜歡這樣的教程嗎?");
? if (con==true) alert("喜歡");
? else alert("不喜歡");
? </script>
? prompt()方法的使用:
? <script language="javascript">
? var name,age;
? name=prompt("請(qǐng)問您的名字?");
? alert(name);
? age=prompt("多大?");
? alert(age);
? </script>
? 它不但可以顯示信息,而且可以輸入信息。
----------------------------------------------------------------------------------------
javascript編程起步(第二課)
關(guān)于上課的作業(yè),大家都知道,代碼如下:
? <script language="javascript">
? <!--
? 代碼
? //-->
? </script>
? 這兒補(bǔ)充一點(diǎn)內(nèi)容,還可以告訴讀者這兒是javascript代碼,該瀏覽器不支持。
? <noscript>
? 在瀏覽器不支持的時(shí)候顯示這句話
? </noscript>
? 今天我們主要學(xué)習(xí)的內(nèi)容有以下幾塊:
? 1、javascript變量
? 2、javascript表達(dá)式和運(yùn)算符
? 可以用var加上為變量指定的名稱來聲明變量,變量類型可以通過給變量賦值來確定。由于javascript采用的是弱類型的樣式,對(duì)數(shù)據(jù)類型要
求不太嚴(yán)格,在程序執(zhí)行的過程中,會(huì)根據(jù)需要自動(dòng)轉(zhuǎn)換。
? 對(duì)于字符串變量,可以通過“變量名.length”來獲得該變量中字符串的長(zhǎng)度,如
? var name;
? name="javascript";
? 那么name.length的值就是10。
? 若在一行中創(chuàng)建多個(gè)變量時(shí),記住用逗號(hào)來隔開變量名。各語句用分號(hào)隔開。(使用分號(hào)是個(gè)好習(xí)慣, 大家在學(xué)習(xí)的時(shí)候盡量養(yǎng)成加分號(hào)的習(xí)
慣)
?
? 類型轉(zhuǎn)換:javascript允許在程序中改變變量的類型,最常見的兩個(gè)類型轉(zhuǎn)換符Number和String。
? Number(x)是字符型值——〉數(shù)字值型。String與之相反。相對(duì)于javascript的自動(dòng)類型轉(zhuǎn)換,可以將這種轉(zhuǎn)換成為強(qiáng)制類型轉(zhuǎn)換。(強(qiáng)制類
型轉(zhuǎn)換需要在javascript1.2及以上版本才可以使用)
? 變量的命名:
? 1.必須以字母或下劃線開頭,中間可以有字母數(shù)字和或下劃線。不能使用空格、+、-等其他符號(hào)。
??? 作為連字符外,變量名稱不能有空格、(+)、(-)、(,)或其它符號(hào)。
? 2.不能使用JavaScript中的關(guān)鍵字作為變量。
? (javascript變量名是區(qū)分大小寫的,name和Name是不一樣的。)
? 對(duì)于變量還有一個(gè)重要性──那就是變量的作用域。在JavaScript中同樣有全局變量和局部變量。全局變量是定義在所有函數(shù)體之外,其作
用范圍是整個(gè)函數(shù);而局部變量是定義在函數(shù)體之內(nèi),只對(duì)其該函數(shù)是可見的,而對(duì)其它函數(shù)則是不可見的。
? 例子:
<script>
var myStr = "我是全局變量";
function getStr1(){
???? var myStr = "我是局部變量";
???? alert (myStr);
}
function getStr2(){
???? alert (myStr);
}
getStr1();
getStr2();
// 測(cè)試會(huì)彈出兩個(gè)提示框,第一個(gè)提示“我是局部變量”,第二個(gè)提示“我是全局變量”
</script>
? 表達(dá)式:在定義完變量后,就可以對(duì)它們進(jìn)行賦值、改變、計(jì)算等一系列操作,這一過程通常由表達(dá)式來完成,可以說它是變量、常量、布
爾及運(yùn)算符的集合,因此表達(dá)式可以分為算術(shù)表述式、字串表達(dá)式、賦值表達(dá)式以及布爾表達(dá)式等。
?
? 運(yùn)算符:
? 1.算術(shù)運(yùn)算符:+(加) 、-(減)、 *(乘)、 /(除)、 %(取模) -(取反)、
??????????? ++(遞加1)、--(遞減1)。
??????????? 例:11%2=1 ; 如果x=2?? ++x+4=7???? x+++4=6
????????? (++x是先執(zhí)行加1,x++是執(zhí)行完語句之后x在自加1
例子:
<script>
var i=0, j=0;
alert(i++ + " " + ++j + " " + i);
// 輸出 “0 1 1”,可見i++是先輸出了i,然后進(jìn)行運(yùn)算,而++j是先對(duì)j進(jìn)行了自加運(yùn)算,然后輸出j的值
</script>
)
? 2.比較運(yùn)算符:<(小于)、>(大于)、<=(小于等于)、>=(大于等于)、==(等于)、!=(不等于)
????????? (基本操作過程是,首先對(duì)它的操作數(shù)進(jìn)行比較,然后再返回一個(gè)true或False值。)
? 3.邏輯運(yùn)算符:!(取反)、&=(與之后賦值)、 &(邏輯與)、 |=(或之后賦值)、 |(邏輯或)、
??????????? ^=(異或之后賦值)、 ^(邏輯異或)、 ?:(三目操作符)、||(或)、&& (與)
??????????? ==(等于)、|=(不等于)。
? 4.字符串運(yùn)算符:只有+?? (”my“+”javascript“結(jié)果等于”my javascript“)
? 5.賦值運(yùn)算符:即=,將右邊的值賦給左邊的變量。
? 6.條件運(yùn)算符:(?:)
??????????? 例:status=(age>=18)?"adult":"child";如果大于18,則表達(dá)式的值為adult。
? 7.typeof()運(yùn)算符:用來返回變量或數(shù)據(jù)的類型。
?
作業(yè):試試能不能做個(gè)最最最最簡(jiǎn)單的計(jì)算器?
??? (就是我可以輸入兩個(gè)數(shù)和一個(gè)運(yùn)算符號(hào),就得出計(jì)算結(jié)果。結(jié)合上一課的prompt())
答案:
<script language="javascript">
function yunshuan(a,op,c)
{
try{
? eval("result=a"+op+"c");
? return result;
}
catch(e){
? alert("Some error occur");
}
}
function main(){
var a,b,c;
a=parseInt(prompt("請(qǐng)輸入第一個(gè)數(shù)"));
op=prompt("請(qǐng)輸入運(yùn)算符");
c=parseInt(prompt("請(qǐng)輸入第二個(gè)數(shù)"));
alert("the result is :" + yunshuan(a,op,c));
}
</script>
-----------------------------------------------
javascript編程起步(第三課)
第三課終于和大家見面了, 大家要感謝 Actions 的辛勤勞動(dòng)啊, 好好利用論壇給大家提供的資源和教程, 希望大家一起學(xué)習(xí)提高 :D
大家有什么意見, 建議或者想法, 可以到本版的教程問答區(qū) 或 站務(wù)管理版的 建議或意見 去發(fā)表, 我們會(huì)及時(shí)給您反饋 :)
下面是今天的學(xué)習(xí)重點(diǎn):
A.補(bǔ)充上課的變量?jī)?nèi)容
B.if語句的基本語法
C.window.com()基本用法
A.變量
1.變量的類型規(guī)則
javascript是無類型的,他的變量可以放任何數(shù)據(jù)類型的值。
2.變量的聲明
在javascript程序中,在使用變量之前,必須先聲明它。變量是使用關(guān)鍵字var聲明的。而實(shí)際上,不一定要先聲明變量,在某些情況下,變量
聲明是可選的。
var i;
var sum;
也可以使用一個(gè)var關(guān)鍵字聲明多個(gè)變量;
var i,sum;
而且還可以將變量聲明和變量初始化綁定在一起:
var message = 'hello';
var i = 0,j=0,k=0;
由var聲明的變量是永久的,因?yàn)楦鳛g覽器對(duì)是否可以刪除全局性的變量的態(tài)度是不同的,(都可以刪除局部變量)為了安全,最好假設(shè)全局變
量不可刪除。
可以使用var多次聲明同一個(gè)變量
當(dāng)你給一個(gè)沒有聲明的變量賦值時(shí),js會(huì)自動(dòng)用哪個(gè)變量為你創(chuàng)建一個(gè)全局變量。
如果你想在函數(shù)內(nèi)部創(chuàng)建一個(gè)局部變量。那就必須用var在函數(shù)內(nèi)部聲明。
3.變量的作用域
如果局部變量和全局變量重名,則局部變量?jī)?yōu)先。js沒有塊級(jí)作用域。函數(shù)中聲明的所有的變量,作用域是相同的。
var x;//聲明一個(gè)未賦值的變量,他的值是undefined。
alert(u); //使用未聲明的變量將引發(fā)錯(cuò)誤。
u=3;//給一個(gè)未聲明的變量賦值將會(huì)創(chuàng)建該變量。
4.原始類型和引用類型
var a=3.14;//原始類型
var b=a;//引用類型
B.if語句
if (條件)
語句段1
else
語句段2
功能:若表達(dá)式為true,則執(zhí)行語句段1;否則執(zhí)行語句段2。
說明:
if -else 語句是JavaScript中最基本的控制語句,通過它可以改變語句的執(zhí)行順序。
表達(dá)式中必須使用關(guān)系語句,來實(shí)現(xiàn)判斷,它是作為一個(gè)布爾值來估算的。
它將零和非零的數(shù)分別轉(zhuǎn)化成false和true。
若if后的語句有多行,則必須使用花括號(hào)將其括起來。
例子
if (age < 16 )
???? alert("小朋友");
else
???? alert("成年人");
end if
if語句的嵌套
if (布爾值) 語句1;
else if (布爾值) 語句2;
else if (布爾值) 語句3;
else 語句4;
在這種情況下,每一級(jí)的布爾表述式都會(huì)被計(jì)算,若為真,則執(zhí)行其相應(yīng)的語句,否則執(zhí)行else后的語句。
C.window.com()的用法
? 1、基本語法
? window.open(pageURL,name,parameters)
? 其中:
??? pageURL 為子窗口路徑
??? name 為子窗口句柄
??? parameters 為窗口參數(shù)(各參數(shù)用逗號(hào)分隔)
? 例:
????? <SCRIPT LANGUAGE="javascript">
????? <!--
????? window.open ('url') //url為一網(wǎng)址,如:http://www.numb1.com(絕對(duì)) 或 index.htm相對(duì))
????? -->
????? </SCRIPT>
? 2. 窗口參數(shù)
? 其中yes/no也可使用1/0;value為具體的數(shù)值,單位象素。
? toolbar=yes,no 是否顯示工具條
? location=yes,no 是否顯示網(wǎng)址欄
? directories=yes,no 是否顯示導(dǎo)航條
? status=yes,no 是否顯示狀態(tài)條
? menubar=yes,no 是否顯示菜單
? scrollbars=yes,no 是否顯示滾動(dòng)條
? resizable=yes,no 是否可以改變公告窗口大小
? copyhistory=yes,no 是否顯示歷史按鈕
? width=value 公告窗口的寬
? height=value 公告窗口的高
? left=value 公告窗口的左上頂點(diǎn)距屏幕左邊100像素
? top=value 公告窗口的左上頂點(diǎn)距屏幕頂端100像素
? 例:
<script language="javascript">
<!--
window.open("http://www.sina.com.cn","newwindow",
"toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=500,height=500,le
ft=100,top=100")
//-->
</script>
----------------------------------------------------
javascript編程起步(第四課)
前一段有人給我說,第二課就看不明白了,我不知道是不是寫的太籠統(tǒng)了,不夠細(xì)致,還是其他的,有什么問題,大家給提出來,當(dāng)然我也不
是什么js高手,只不過想把愛好者領(lǐng)進(jìn)門而已。希望大家多多參與。
今天的主要任務(wù)就是for循環(huán)。另外就是數(shù)據(jù)類型。既for in(現(xiàn)在還沒有講數(shù)組和對(duì)象,先了解一下)。
數(shù)據(jù)類型的轉(zhuǎn)換:
如果運(yùn)算的數(shù)據(jù)類型不是一樣的話,js腳本會(huì)盡力執(zhí)行內(nèi)部轉(zhuǎn)換來解決,但js不了解你的心思。所以得到的結(jié)果可能和你想要的不一樣。
em:
? 3+3?? // result=6
? 3+"3"?? // result="33"
將字符串轉(zhuǎn)換為數(shù)值:
javascript語言提供兩個(gè)內(nèi)置函數(shù)將表示數(shù)值的字符串轉(zhuǎn)換為真實(shí)的數(shù)值:parseInt()和parseFloat()。
為了使用這些函數(shù),需要將進(jìn)行轉(zhuǎn)換的字符串作為參數(shù)傳入函數(shù),例:
parseInt("42")???? //result=42
parseInt("42.33")?? //result=42
不過是浮點(diǎn)數(shù)還是整數(shù),函數(shù)返回的值都是整數(shù)。不存在四舍五入,小數(shù)點(diǎn)和它后面的數(shù)字將被舍棄。
而parseFloat()則返回浮點(diǎn)數(shù)(如果是整數(shù)就返回整數(shù)),例:
parseFloat("42")?? //result=42
parseFloat("42.33") //result=42.33
如果在某處需要進(jìn)行字符串的轉(zhuǎn)換,只需將函數(shù)插入該初即可。如:
3+3+parseInt("3")?? //result=9
將數(shù)值轉(zhuǎn)換為字符串:
雖然當(dāng)遇到表達(dá)式中含有混合數(shù)據(jù)類型時(shí),js會(huì)傾向于字符串。但為了防止?jié)撛诘膯栴}發(fā)生,最好先轉(zhuǎn)換以下。在數(shù)值中加入空字符串就可以
把數(shù)值轉(zhuǎn)換為字符串了:
(""+2500)???????? //result="2500"
(""+2500).length?? //result=4
for:
javascript中最常用的循環(huán)結(jié)構(gòu)稱之為for循環(huán),關(guān)鍵詞放在循環(huán)結(jié)構(gòu)的開始位置。正式語法結(jié)構(gòu)如下:
for ([initial expression];[condition];[update expression]){
? statement[s] inside loop
}
例:
for(var i=0;i<9;i++)
{
n+=i
myfunc(n)
}
for...in:
這個(gè)語句完全依照變量var所設(shè)定的值決定運(yùn)行次數(shù)。你可以用for...in語句在一個(gè)對(duì)象或一個(gè)數(shù)組上建立循環(huán)
for(var in [obj | array])
{
statements
}
例:
<script language="javascript">
document.writeln("The properties of the document object")
for(var element in document){
document.writein(element+"="+document[element])
}
</script>
----------------------------------------------------
javascript編程起步(第五課)
鼠標(biāo)事件(上)
? 隨著課程的進(jìn)行,能跟著下來的人是越來越少了,不知道是不是因?yàn)闆]有太多的表現(xiàn),只是死記的東西,大家都沒有興趣啊。其實(shí)網(wǎng)頁上
的很多特效,動(dòng)作大都是用javascript來實(shí)現(xiàn)的,沒有javascript的網(wǎng)頁,就象一個(gè)人沒有了肌肉一樣。但是所有的動(dòng)作都是有函數(shù)來控制的
,而控制語句是基礎(chǔ)中的基礎(chǔ)。希望大家能耐心的學(xué)下去。今天的課程就輕松一下,學(xué)習(xí)點(diǎn)能見到效果的。
主要內(nèi)容就是基于鼠標(biāo)的事件,有如下幾種:
1.mouseover(鼠標(biāo)移至)
2.mouseout(鼠標(biāo)移出)
3.mousemove(鼠標(biāo)移動(dòng))
4.mousedown(鼠標(biāo)按下)
5.mouseup(鼠標(biāo)彈起)
6.click(單擊)
7.dblclick(雙擊)
? 通常1和2組合起來使用,當(dāng)用戶把鼠標(biāo)移動(dòng)到一個(gè)超鏈接或者其他元素時(shí),mouseover事件就會(huì)發(fā)生,mouseout總會(huì)伴隨著它,因?yàn)楫?dāng)鼠標(biāo)
離開時(shí),mouseout事件就會(huì)發(fā)生。
? 例子:
<html>
<head>
<title>test</title>
<script language="javascript">
function text_onmouseover(){
mytext.style.fontSize="30pt";
mytext.style.color="red";
mytext.style.fontStyle="italic";
}
function text_onmouseout(){
mytext.style.fontSize="20pt";
mytext.style.color="blue";
mytext.style.fontStyle="normal";
}
</script>
</head>
<body>
<p id=mytext onmouseover="text_onmouseover()" onmouseout="text_onmouseout()">http://www.javascript.com.cn</p>
<p>看看字體樣式有什么變化</p>
</body>
</html>
? 這里定義了兩個(gè)函數(shù),來使字體改變樣式。關(guān)于函數(shù)我們以后會(huì)詳細(xì)的講解。
(注意:ie對(duì)頁面上的所有元素都支持mouseover和mouseout事件,但對(duì)于netscape navigator來說,只有超鏈接和層支持這兩個(gè)事件。)
下面看鼠標(biāo)移動(dòng)的例子:
<html>
<body onMousemove="micro$oftMouseMove()">
<SCRIPT LANGUAGE="JavaScript">
if (navigator.appName == 'Netscape')
{
document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = netscapeMouseMove;
}
function netscapeMouseMove(e) {
if (e.screenX != document.test.x.value || e.screenY != document.test.y.value)
{
document.test.x.value = e.screenX;
document.test.y.value = e.screenY;
}
}
function micro$oftMouseMove() {
if (window.event.x != document.test.x.value || window.event.y != document.test.y.value)
{
document.test.x.value = window.event.x;
document.test.y.value = window.event.y;
}
}
</SCRIPT>
<FORM NAME="test">
X: <INPUT TYPE="TEXT" NAME="x" SIZE="4"> Y: <INPUT
TYPUE="TEXT" NAME="y" SIZE="4">
</FORM>
</body>
</html>
鼠標(biāo)移動(dòng)的事件在鼠標(biāo)跟隨效果的使用上比較多,大家可以看看鼠標(biāo)跟隨特效。網(wǎng)上n多。
(需要注意的是:?jiǎn)?dòng)這個(gè)事件處理過程存在一個(gè)問題,就是它有可能會(huì)屏蔽其他事件。另外還增加了頁面的處理時(shí)間,應(yīng)盡量少用。)
先說到這兒吧,下節(jié)講鼠標(biāo)的另外4個(gè)事件。
今天的作業(yè)是:
1.圖片鏈接的轉(zhuǎn)換(當(dāng)鼠標(biāo)放上去時(shí)是一個(gè)圖片,當(dāng)鼠標(biāo)離開時(shí)是另外一個(gè)圖片)
2.圖片跟隨鼠標(biāo)(當(dāng)鼠標(biāo)移動(dòng)時(shí),會(huì)有個(gè)圖片跟隨著鼠標(biāo)一起移動(dòng))
1題答案:
<html>
<body>
<script language="javascript">
?? function change()
?? {
?????? //document.test.tupian.src="1.bmp";用test和form[0]都可以
??? document.form[0].tupian.src="1.bmp";
?? }
?? function changeback()
?? {
?????? //document.test.tupian.src="2.bmp";
??? document.form[0].tupian.src="1.bmp";
?? }
</script>
<form name="test">
<a name="aa" href="http://www.xxx.com" onmouseover="change();" onmouseout="changeback();"><img name="tupian"
src="3.jpg"/></a>
</form>
</body>
</html>
---------------------------------------------------------------------------------------------------
javascript編程起步(第六課)
mouseDown事件和mouseUp事件
?
大家知道,mouseDown事件和mouseUp事件的組合就是click事件,但是如果在鏈接上按下鼠標(biāo),并移到鏈接之外在放開鼠標(biāo),那么就只有mouseD
own事件了。這兩個(gè)事件可以增加圖標(biāo)按鈕的圖像效果,
? 至于mouseDown和mouseUp的屬性,它們是伴隨著Click事件發(fā)生的,這和keyPress事件是keyDown事件和keyUp事件組合而成的機(jī)制是一樣的
,這3個(gè)鼠標(biāo)事件也有modifier屬性。
? (注意:如果在onClick事件處理中使用return語句,它可以接收任何數(shù)值。只要這個(gè)值不是False,瀏覽器就可以完成提交。但如果瀏覽
器得到的是False值,表單提交操作就會(huì)被取消。)
Click事件和dbClick事件
? onClick是單擊事件,onDblClick是雙擊事件,而實(shí)際上很難分清連續(xù)的單擊和雙擊。它們會(huì)互相干擾。而且在ie和其他瀏覽器的情況還有
不同。有的瀏覽器是雙擊事件的每一次單擊都會(huì)觸發(fā)單擊事件,而在ie中,只有雙擊事件的第一次單擊會(huì)觸發(fā)單擊事件。不管怎么樣,單擊事
件都不會(huì)自動(dòng)的取消或被忽略。因此,如果想使用單擊和雙擊一個(gè)鏈接時(shí)觸發(fā)兩個(gè)完全不同的過程,則必須通過編程來延遲單擊的動(dòng)作知道雙
擊。
例:
<script>
var timer=null;
document.onclick=new Function("timer=setTimeout(click,500)")
document.ondblclick=new Function("clearTimeout(timer);dblclick()")
function click(){
alert("click")
}
function dblclick(){
alert("dblclick")
}
</script>
解釋:
new Function("timer=setTimeout(click,500)")
新建一個(gè)函數(shù),內(nèi)容為
timer=setTimeout(click,500)
setTimeout(函數(shù)或語句,時(shí)間以毫秒為單位)
用于設(shè)置某函數(shù)或語句在某時(shí)間后執(zhí)行,……
clearTimeout(timer);
清除設(shè)置,
? 在高版本的瀏覽器中,鏈接的這兩種事件處理程序都監(jiān)視那些使得腳本阻止鏈接的特殊行為。
? 例如:在想要的導(dǎo)航到另一個(gè)頁面之前進(jìn)行某些數(shù)據(jù)項(xiàng)的確認(rèn),如果某些域填得不正確,可以提醒并終止鏈接。要實(shí)現(xiàn)這種確認(rèn),必須在
事件處理程序得最后一條語句或者事件處理程序自身返回True或False。如果返回False就終止鏈接。
------------------------------------------------------
javascript編程起步(第七課)
過年到現(xiàn)在一直都比較忙,辜負(fù)大家了.
今天就學(xué)習(xí)函數(shù)吧,雖然語句還沒有說完.
函數(shù)是javascript語言的一個(gè)很重要的內(nèi)容,但也很復(fù)雜.
下面來看看javascript函數(shù).
函數(shù)是有function加函數(shù)名和一對(duì)帶有參數(shù)括號(hào),以及大括號(hào)組成的,其中大括號(hào)里是
主體javascript語句.
例:
function hanshuname(js) //hanshuname是函數(shù)名.
{
document.write(js,"<br>"); //是函數(shù)的主體語句.
}
函數(shù)可以嵌套,如下:
function qiantao(a,b){
function lqiantao(x){return x*x;}
return Math.sqrt(lqiantao(a)+lqiantao(b));
}
函數(shù)還可以作為數(shù)據(jù)來應(yīng)用,因此可以象處理其他數(shù)據(jù)那樣來處理函數(shù),如:賦值,存儲(chǔ),傳遞等.
例:
function zhi(x){return x*x;}
實(shí)際上,函數(shù)名沒有什么意義,不過是保存函數(shù)的變量名而已.
a=zhi(6);//a存放的是數(shù)字36;
b=zhi;//現(xiàn)在b和zhi引用同一個(gè)函數(shù).
c=b(5);//c存放的是數(shù)字25.
在一個(gè)函數(shù)體內(nèi),標(biāo)識(shí)符arguments總是具有特殊含義,它是調(diào)用對(duì)象的一個(gè)特殊屬性,用來引用實(shí)際參數(shù)對(duì)象.這個(gè)實(shí)際參數(shù)對(duì)象具有大量有用的
屬性.除此之外,它還兼有數(shù)組的角色.
盡管定義javascript函數(shù)時(shí)都有固定的參數(shù),但調(diào)用這個(gè)函數(shù)時(shí),傳遞給它的參數(shù)數(shù)目卻可以是任意的,數(shù)組arguments[]允許完全存取那些實(shí)
際參數(shù)值.另外,arguments有一個(gè)length屬性,看如下例子:
function zhi(x,y,z)
{
if(arguments.length !=3){
alert("function zhi called with"+arguments.length+"arguments,but it expects 3 arguments.");
return null;
}
}
數(shù)組arguments[]還為javascript函數(shù)開發(fā)了一項(xiàng)重要的可能性,既可以將函數(shù)編寫為能夠接受任意數(shù)目的實(shí)際參數(shù).
function zhi()
{
var m=Number.NEGATIVE_INFINITY;
//遍歷所有參數(shù)
//檢索并記憶最大的一個(gè).
for(var i=0;i<arguments.length;i++)
if(arguments>m)m=arguments;
//返回最大的參數(shù)值.
return m;
}
var lazgest=zhi(1,10,100,2,3,1000,4,5,10000,6);
也可以使用arguments[]數(shù)組來編寫一個(gè)函數(shù).
調(diào)用js函數(shù)
<a href=”#” onClick=”functionName()”>Link text</a>
<a href=”javascript:functionName()”>Link text</a>
今天先說到這兒吧,下節(jié)繼續(xù)說函數(shù).
posted on 2006-06-13 17:30
阿成 閱讀(530)
評(píng)論(0) 編輯 收藏 所屬分類:
JavaScript