javascript
第十三期:你所了解的javascript?
在介紹JavaScript之前,首先讓我們來簡單了解一下腳本語言。大家知道,HTML通常用于格式化和鏈接文本,各種編程語言通常用于向機器發(fā)出一系列復(fù)雜的指令,而腳本語言是介于HTML和C++、Java等編程語言之間的語言。腳本語言是一種簡單的語言,其語法和規(guī)則沒有編程語言嚴格和復(fù)雜。用C++、Java等編寫的程序必須先經(jīng)過編譯,將源代碼轉(zhuǎn)換為二進制代碼之后才可執(zhí)行,而腳本語言是一種解釋性的語言,其程序不需要事先編譯,可以直接運行,只要使用合適的解釋器來解釋便可以執(zhí)行;腳本語言由一些ASCII碼組成,以文本形式存在。常用的腳本語言有JavaScript、VBScript等。
????因為腳本語言是在客戶端被解釋執(zhí)行的,所以我們通常用腳本語言來實現(xiàn)客戶端動態(tài)網(wǎng)頁。網(wǎng)站發(fā)展的初期,所有的程序都是在服務(wù)器端執(zhí)行,然后再將執(zhí)行結(jié)果發(fā)送到客戶端。隨著客戶端計算機的功能越來越強大,CPU速度越來越快,如果將部分簡單的操作交給客戶端的計算機處理,就可以大大提高服務(wù)器的工作效率。這樣網(wǎng)頁腳本語言就應(yīng)運而生了,因為這種腳本語言能夠與一般的HTML語言交互使用。在讀取網(wǎng)頁的同時,腳本語言編寫的小程序也被傳輸?shù)娇蛻魴C上,并在客戶機上執(zhí)行。
一、JavaScript簡介
通過HTML標簽的描述可以實現(xiàn)文字、表格、聲音、圖像、動畫等信息的瀏覽,然而這只是一種靜態(tài)信息資源的提供,缺少動態(tài)交互。JavaScript的出現(xiàn),使得信息和用戶之間不僅只是一種顯示和瀏覽的關(guān)系,而且實現(xiàn)了一種實時的、動態(tài)的、可交互式的表達。從而使得基于CGI的靜態(tài)HTML頁面被可提供動態(tài)實時信息、并對客戶操作進行反應(yīng)的Web頁面所取代。
JavaScript早期是由Netscape(網(wǎng)景)公司研發(fā)出來的一種在Netscape瀏覽器上執(zhí)行的程序語言。它不僅包含了數(shù)組對象、數(shù)學(xué)對象,還包括一般語言所包含的操作數(shù)、控制流程等結(jié)構(gòu)組件。用戶可以利用它設(shè)計出交互式的網(wǎng)頁內(nèi)容,但這些網(wǎng)頁不能單獨執(zhí)行,必須由瀏覽器或服務(wù)器執(zhí)行。
開發(fā)JavaScript的最初動機是想要減輕服務(wù)器數(shù)據(jù)處理的負荷,能夠完成如在網(wǎng)頁上顯示時間、動態(tài)廣告、處理表單傳送數(shù)據(jù)等工作。隨著JavaScript所支持的功能日益增多,不少網(wǎng)頁編制人員轉(zhuǎn)而利用它來進行動態(tài)網(wǎng)頁的設(shè)計。Microsoft公司所研發(fā)的IE網(wǎng)絡(luò)瀏覽器早期版本是不支持JavaScript語言的,但在IE 4.0之后也開始全面支持JavaScript,這使得JavaScript成為兩大瀏覽器的通用語言。
1. 什么是JavaScript
JavaScript是一種基于對象(Object)和事件驅(qū)動(Event Driven),并具有安全性能的腳本語言。使用它的目的是與HTML、Java 腳本語言(Java小程序)一起實現(xiàn)在一個Web頁面中鏈接多個對象,與Web客戶交互作用,從而可以開發(fā)客戶端的應(yīng)用程序等。它是通過嵌入在標準的HTML語言中實現(xiàn)的,它的出現(xiàn)彌補了HTML語言的缺陷。
2. JavaScript與Java的區(qū)別
很多人看到 Java 和 JavaScript 都有“Java”,就以為它們是同一樣?xùn)|西,實際上Java之與Javascript就好比Car(汽車)之于Carpet(地毯)。雖然JavaScript與Java有緊密的聯(lián)系,但卻是兩個公司開發(fā)的不同的兩個產(chǎn)品。Java是SUN公司推出的新一代面向?qū)ο蟮某绦蛟O(shè)計語言,特別適合于Internet應(yīng)用程序開發(fā);而JavaScript是Netscape公司的產(chǎn)品,是為了擴展Netscape Navigator功能而開發(fā)的一種可以嵌入Web頁面中的基于對象和事件驅(qū)動的解釋性語言。下面對兩種語言間的異同作如下比較:
1)基于對象和面向?qū)ο?/p>
Java是完全面向?qū)ο蟮恼Z言,即使是開發(fā)簡單的程序,也必須設(shè)計類和對象?! avaScript是基于對象的腳本語言,它雖然基于對象和事件驅(qū)動,但由于腳本語言的特性,在功能上與Java相比要差得多。
2)解釋和編譯
兩種語言在其瀏覽器中執(zhí)行的方式不一樣。Java的源代碼在傳遞到客戶端執(zhí)行之前,必須經(jīng)過編譯,因而客戶端上必須具有相應(yīng)平臺上的仿真器或解釋器,它可以通過編譯器或解釋器實現(xiàn)獨立于某個特定的平臺編譯代碼。JavaScript是一種解釋性編程語言,其源代碼在發(fā)往客戶端執(zhí)行之前不需經(jīng)過編譯,而是將文本格式的字符代碼發(fā)送給客戶端由瀏覽器解釋執(zhí)行。
3)強變量和弱變量
兩種語言所采用的變量是不一樣的。Java采用強類型變量檢查,即所有變量在編譯之前必須作聲明。JavaScript中的變量是弱類型的,即變量在使用前不需作聲明。
4)代碼格式不一樣
Java的格式與HTML無關(guān),其代碼以字節(jié)形式保存在獨立的文檔中。而JavaScript的代碼是一種文本字符格式,可以直接嵌入HTML文檔中,并且可動態(tài)裝載。
5)嵌入方式不一樣
在HTML文檔中,通過不同的標簽標識兩種編程語言,JavaScript使用<script>...</script>標簽,而Java使用<applet>...</applet>標簽。
6)靜態(tài)聯(lián)編和動態(tài)聯(lián)編
Java采用靜態(tài)聯(lián)編,即Java的對象引用必須在編譯時進行,以使編譯器能夠?qū)崿F(xiàn)強類型檢查。JavaScript采用動態(tài)聯(lián)編,即JavaScript先編譯,再在運行時對對象引用進行檢查。
二、?JavaScript語言基礎(chǔ)知識
1. JavaScript代碼的加入
???上節(jié)已經(jīng)提到JavaScript嵌入在HTML文檔中使用,那么,在HTML文檔的什么地方插入JavaScript腳本呢?實際上,使用標簽對<script></script>,你可以在 HTML 文檔的任意地方插入 JavaScript,甚至在<html>之前插入也不成問題,多數(shù)情況下將其放于<head></head>中,因為一些代碼可能需要在頁面裝載起始就開始運行。不過如果要在聲明框架的網(wǎng)頁中插入,就一定要在<frameset>之前插入,否則不會運行。腳本代碼插入基本格式如下: ???
<script language ="JavaScript">
JavaScript代碼;
……
</script>
標簽對<script></script>指明其間放入的是腳本源代碼;屬性language 說明標簽中使用的是何種腳本語言,這里是JavaScript語言,也可以不寫,因為目前大部分瀏覽器都將其設(shè)為默認值。
另外,還可以把 JavaScript 代碼寫到一個單獨的文件中(此文件通常應(yīng)該用“.js”作擴展名),然后用下面所示的格式在HTML文檔中調(diào)用。
<script language="JavaScript" src="url">
……
</script>
其中,url屬性指明JavaScrip文檔的地址。這種方式非常適合多個網(wǎng)頁調(diào)用同一個JavaScript程序的情況。
【例6-20】JavaScript簡單實例(js.html)
<html>
??<head>
????<title>JavaScript實例</title>
????<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
??</head>
??<body>
????<script language="JavaScript">
???? document.write("<h2>JavaScript的第一個網(wǎng)頁!</h2>");
???? document. close();
????</script>
??</body>
</html>
運行結(jié)果如圖6-31所示。
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖6-31 ?使用JavaScript的第一個網(wǎng)頁
??說明:
(1)document. write():是文檔對象的輸出函數(shù),其功能是將括號中的字符或變量值輸出到窗口。
(2)document. close():是將輸出關(guān)閉。
(3)分號“;”是 JavaScript語句結(jié)束符。
(4)JavaScript區(qū)分大小寫。
2. 基本數(shù)據(jù)類型
JavaScript中有四種基本數(shù)據(jù)類型:數(shù)值型(整數(shù)和實數(shù))、字符串型(用“”號括起來的字符或數(shù)值)、布爾型(用true或false表示)、空值。JavaScript的基本類型數(shù)據(jù)可以是常量,也可以是變量。JavaScript采用弱類型的形式,因而一個變量或常量不必在使用前聲明,而是在使用或賦值時確定其數(shù)據(jù)類型。當然,用戶也可以先聲明該數(shù)據(jù)的類型,然后再進行賦值,也可以在聲明變量的同時為其賦值。
3. 常量
和其它語言一樣,常量的值在程序執(zhí)行過程中不會發(fā)生改變。
1)整型常量
(1)十進制:例如,666。
(2)八進制:由“0”開始,例如,0222。
(3)十六進制:由“0x”開始,例如,0x33。
2)實型常量
例如,0.002。也可以使用科學(xué)計數(shù)法表示實型常量,即寫成指數(shù)形式。例如,0.002可以寫成2e-3或2E-3。
3)布爾常量
布爾常量只有兩個值:true、false。 不能用0表示假、用非0表示真。
4)字符型常量
使用單引號(')括起來的一個字符或使用雙引號(")括起來的一個或若干個字符。例如,"3a6e"。轉(zhuǎn)義字符用反斜杠(\)開頭,如:\n表示換行,\r表示回車。
5)未定義(undefined)
變量定義后沒有賦初值,變量的值便是undefined。
6)空值(null)
null表示什么也沒有,如果試圖引用沒有定義的變量,則返回一個null值。
4. 變量
變量的值在程序執(zhí)行過程中可以發(fā)生改變,其命名必須滿足合法標識符要求,即以字母或下劃線開頭,只包含字母、數(shù)字和下劃線,不能使用JavaScript中的關(guān)鍵字作為變量名。在JavaScript中,變量的定義方式有三種。
(1)用關(guān)鍵字var定義變量,但不賦初值,使用時再賦值。
例如:var sample;
此時變量sample的值是undefined
(2)用關(guān)鍵字var定義變量的同時給變量賦初值,這樣就定義了變量的數(shù)據(jù)類型,使用時也可再賦其它類型的值。
例如:var sample=99;
(3)變量不事先定義,而是在使用時通過給變量賦值來定義變量同時確定變量類型。
例如:temp=true;
該語句定義變量temp,變量數(shù)據(jù)類型是布爾型。
和其它語言一樣,JavaScript中有全局變量和局部變量。全局變量定義在所有函數(shù)體之外,其作用范圍是整個文檔;局部變量定義在函數(shù)體之內(nèi),作用范圍是定義它的函數(shù)內(nèi)部。
5. 運算符
JavaScript運算符按操作數(shù)個數(shù)可分為一元、二元、三元運算符,按類型可分為算術(shù)運算符、關(guān)系運算符、邏輯運算符、位運算符、賦值運算符。在運算時按優(yōu)先級順序進行,表6-1中按優(yōu)先級從高到低對各種運算符進行了簡單介紹。
除此之外,JavaScript里還有一些特殊運算符。
(1)字符串連接運算符“+”:該運算符可以將多個字符串連接在一起。
例如:"Java"+"Script"的結(jié)果為"JavaScript"。
(2)delete:刪除對象。
(3)typeof:返回一個可以標識類型的字符串。
(4)void:函數(shù)無返回值。
? ? 表6-1 JavaScript運算符
| ? | 運算符 | 運算符說明 |
| 括號 | (x) [x] | 中括號只用于指明數(shù)組的下標 |
| 求反 | -x | 返回 x 的相反數(shù) |
| !x | 返回與 x (布爾值)相反的布爾值 | |
| x++ | x 值加 1,但仍返回原來的 x 值 | |
| x-- | x 值減 1,但仍返回原來的 x 值 | |
| ++x | x 值加 1,返回最新的 x 值 | |
| --x | x 值減 1,返回最新的 x 值 | |
| 乘、除 | x*y | 返回 x 乘以 y 的值 |
| x/y | 返回 x 除以 y 的值 | |
| x%y | 返回 x 與 y 的模(x 除以y 的余數(shù)) | |
| 加、減 | x+y | 返回 x 加 y 的值 |
| x-y | 返回 x 減 y 的值 | |
| 關(guān)系運算 | x<y x<=y | 當符合條件時返回 true 值,否則返回 false 值 |
| 等于、 | x==y | 當 x 等于 y 時返回 true 值,否則返回 false 值 |
| x!=y | 當 x 不等于 y 時返回 true 值,否則返回 false 值 | |
| 按位與 | x&y | 當兩個數(shù)位同時為 1 時,返回的數(shù)據(jù)的當前數(shù)位為 1,其它情況都為 0 |
| 按位異或 | x^y | 兩個數(shù)位中有且只有一個為 0 時,返回 1,否則返回 0 |
| 按位或 | x|y | 兩個數(shù)位中只要有一個為 1,則返回 1;當兩個數(shù)位都為零時才返回零 |
| 邏輯與 | x&&y | 當 x 和 y 同時為 true 時返回 true,否則返回 false |
| 邏輯或 | x||y | 當 x 和 y 任意一個為 true 時返回 true,當兩者同時為 false 時返回 false |
| 條件 | c?x:y | 當條件 c 為 true 時返回 x 的值(執(zhí)行 x 語句),否則返回 y 的值(執(zhí)行 y 語句) |
| 賦值、 復(fù)合運算 | x=y | 把 y 的值賦給 x,返回所賦的值 |
| x+=y x-=y x*=y | x 與 y 相加/減/乘/除/求余,所得結(jié)果賦給 x,并返回 x 賦值后的值 |
6. 控制語句
和其它語言一樣,JavaScript控制語句包括選擇語句、循環(huán)語句、跳出語句。
1)選擇語句
l?if(條件判定)
…語句1(條件為true時)
else
…語句2(條件為false時)
l?嵌套的if……else結(jié)構(gòu)
l?switch(表達式)
{
case 常量1: 語句
break?;
case 常量2: 語句
break?;
…
default : 語句
}
2)循環(huán)語句
l?do{
語句
}while(條件判斷)
l?while(條件判斷) ?語句
l?for([初始表達式];[條件];[增量表達式])
語句
(3)跳出語句
l?break語句:跳出并結(jié)束本層循環(huán)。
l?continue語句:跳出并結(jié)束本層的本次循環(huán),開始下一次循環(huán)。
7. 函數(shù)
函數(shù)是一個執(zhí)行特定任務(wù)的過程,它是JavaScript中最基本的成員。使用函數(shù)前,必須先定義,然后再在腳本中調(diào)用。JavaScript中支持的函數(shù)分為兩大類:一類是JavaScript預(yù)定義函數(shù),另一類是用戶自定義函數(shù)。
1)函數(shù)定義
函數(shù)定義語法格式:
function 函數(shù)名(參數(shù)集合)
{
?函數(shù)體
return 表達式;
}
(1)函數(shù)由關(guān)鍵字function來定義,定義形式與其它語言類似。
(2)函數(shù)定義位置通常在文檔的頭部,以便當文檔被載入時首先載入函數(shù);否則,有可能文檔正在被載入時,用戶已經(jīng)觸發(fā)了一個事件而調(diào)用了一個還沒有定義的函數(shù),導(dǎo)致一個錯誤的產(chǎn)生。
(3)可使用arguments .Length來獲得參數(shù)集合中參數(shù)的個數(shù)。
2)預(yù)定義函數(shù)
下面介紹幾種常用的預(yù)定義函數(shù)。
()1eval函數(shù):對包含數(shù)字表達式的字符串求值。其語法格式如下所示。
eval(參數(shù))
如果參數(shù)是數(shù)字表達式字符串,那么對該表達式求值;如果該參數(shù)代表一個或多個JavaScript語句,則執(zhí)行這些語句;eval還可以把一個日期從一種格式轉(zhuǎn)換為數(shù)值表達式或數(shù)字。
(2)Number和String函數(shù):用來將一個對象轉(zhuǎn)換為一個數(shù)字或字符串。其語法格式如下所示。
Number(對象)
String(對象)
????(3)parseInt和parseFloat函數(shù):用來將字符串參數(shù)轉(zhuǎn)換為一個數(shù)值。其語法格式如下所示。
parseFloat(str)
parseInt(str[,radix])
parseFloat將字符串轉(zhuǎn)換為一個浮點數(shù)。parseInt基于指定的基數(shù)radix或底數(shù)之上返回一個整數(shù)。例如,若基數(shù)為10則將其轉(zhuǎn)化為十進制,為8則轉(zhuǎn)化為八進制。
三、??JavaScript對象
JavaScript中的對象是對客觀事物或事物之間關(guān)系的描述,對象可以是一段文字、一幅圖片、一個表單(form),每個對象有它自己的屬性、方法和事件。對象的屬性是指該對象具有的特性,例如,圖片的地址;對象的方法指該對象具有的行為,例如表單的“提交”(submit);對象的事件指外界對該對象所作的動作,例如點擊button產(chǎn)生的“單擊事件”。JavaScript中可以使用以下幾種對象:
(1)內(nèi)置對象,例如:Date、Math、String。
(2)用戶自定義的對象。
(3)由瀏覽器根據(jù)頁面內(nèi)容自動提供的對象。
(4)服務(wù)器上固有的對象。
在JavaScript中提供了幾個對象處理的語句,例如,this(返回當前對象)、with(為一個或一組語句指定默認對象)、new(創(chuàng)建對象)等。但JavaScript沒有提供繼承、重載等面向?qū)ο笳Z言所必須具有的功能,所以它只是基本面向?qū)ο蟮恼Z言。
1. 創(chuàng)建對象
在JavaScript中創(chuàng)建一個新的對象,首先需定義一個類,然后再為該類創(chuàng)建一個實例。定義類用關(guān)鍵字“function”,格式如下所示。
function 類名(類中屬性的值的集合)
{
屬性定義、賦值
方法定義
}
創(chuàng)建對象使用關(guān)鍵字“new”,格式為:對象實例名=new 類名(參數(shù)表);
例如:定義類person,它的屬性包括name、age、sex、depart,則:
function person(name,age,sex,depart)
{
this.name=name;
this.age=age;
this.sex=sex;
this.depart=depart;
}
然后再創(chuàng)建該類對象sample,如下:
sample=new person("peter",22, "female","personnel department");
2. 引用對象屬性
引用對象屬性的語法格式為:對象名.屬性名
3. 引用對象方法
引用對象方法的語法格式為:對象名.方法名
4. 刪除對象
刪除對象用delete運算符。例如,刪除上面創(chuàng)建的對象sample,使用
delete sample; ????????
5. 內(nèi)置對象
下面介紹幾種內(nèi)置對象。
1)String對象
String對象即字符串對象,用于處理或格式化文本字符串,以及確定和定位子串。
(1)屬性
length:保存字符串的長度。格式:字符串對象名.length;
例如:var str="helloworld"; ?
則str.length的值為10。
(2)方法
charAt(position) :返回該字符串第position位的字符。
indexOf(substring[,startpos]):返回字符串中第startpos位開始的第一個子串substring的位置,如果該子串存在,就返回它的位置,不存在返回-1。
例如:str.indexOf("llo",1); //結(jié)果為2
lastIndexOf(substring[,startpos]) :跟 indexOf() 相似,不過是從startpos位開始從后邊往前查找第一個substring出現(xiàn)的位置。
split(字符串分隔符集合) :返回一個數(shù)組,該數(shù)組的值是按“字符串分隔符”從原字符串對象中分離開來的子串。
例如:str.split('o'); ?
則返回的數(shù)組值是:"hell"、"w"、"rld"。
substring(startpos[,endpos]) :返回原字符串的子串,子串是原字符串從startpos位置到endpos位置的字符序列。如果沒有指定endpos或指定的超過字符串長度,則子字符串一直取到原字符串尾;如果所指定的位置不能返回字符串,則返回空字符串。
toLowerCase() :返回把原字符串所有大寫字母都變成小寫字母的字符串。
toUpperCase() :返回把原字符串所有小寫字母都變成大寫字母的字符串。
2)Array對象
Array對象即數(shù)組對象,是一個對象的集合,里邊的對象可以是不同類型的。數(shù)組的每一個成員對象都有一個“下標”,用來表示它在數(shù)組中的位置。創(chuàng)建數(shù)組有兩種方法:
arrName=new Array(element0,element1,…,elementN)
arrName=new Array(arrLength)
這里arrName既可以是存在的對象,也可以是一個新的對象。而element0,element1,…,elementN是數(shù)組元素的值,arrLength則是數(shù)組初始化的長度。
除了在創(chuàng)建數(shù)組時給它賦值以外,也可以直接通過數(shù)組名加下標的方法給數(shù)組元素賦值,例如:
arr=new Array(6);
arr[0]="sample"。
(1)屬性
length :返回數(shù)組的長度。
(2)方法
join(分隔符) 用法:返回一個字符串,該字符串把數(shù)組中的各個元素串起來,用分隔符置于元素與元素之間。
reverse() 用法:返回將原數(shù)組元素順序反轉(zhuǎn)后的新數(shù)組。
sort() 用法:返回排序后的新數(shù)組。
????3)Math對象
Math對象即算術(shù)對象,提供常用的數(shù)學(xué)常量和數(shù)學(xué)函數(shù)。
例如:E 返回2.718281828...,PI返回3.1415926535...,abs(x) 返回 x 的絕對值,max(a, b) 返回 a, b 中較大的數(shù),random() 返回大于 0 小于 1 的一個隨機數(shù)等等。
4)Date對象
Date對象即日期對象,可以儲存任意一個日期,從 0001 年到 9999 年,并且可以精確到毫秒數(shù)(1/1000 秒)。Date對象有許多方法來設(shè)置、提取和操作時間,類似于Java。
6.文檔對象
文檔對象是指在網(wǎng)頁文檔里劃分出來的對象,在 JavaScript中文檔對象主要有:window、document、location、navigator、screen、history 等。
1)navigator對象
navigator對象即瀏覽器對象,包含了當前使用的瀏覽器的版本信息。
(1)appName屬性返回瀏覽器的名字。
(2)appVersion屬性返回瀏覽器的版本。
(3)platform屬性返回瀏覽器的操作系統(tǒng)平臺。
(4)javaEnabled屬性返回一個布爾值代表當前瀏覽器是否允許使用Java。
【例6-21】navigator對象使用(navigator.html)
<html>
??<head>
????<title>navigator對象使用</title>
????<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
????<script language="JavaScript">
????????document.write("瀏覽器是:" + navigator.appName+"<br>");
????????document.write("瀏覽器的版本是:" + navigator.appVersion+"<br>");
????????document.write("瀏覽器所處操作系統(tǒng)是:" + navigator.platform+"<br>");
????????if (document.javaEnabled==true)
????????????document.write("你的瀏覽器允許使用Java");
????????else
????????????document.write("你的瀏覽器不允許使用Java");
????</script>
??</head>
??<body>
??</body>
</html>
運行結(jié)果如圖6-32所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖6-32 ?navigator對象使用
2)screen對象
screen對象即屏幕對象,包含了當前用戶的屏幕設(shè)置信息。
(1)width屬性返回屏幕的寬度,單位為像素。
(2)height屬性返回屏幕的高度,單位為像素。
(3)colorDepth屬性保存當前顏色設(shè)置,取值可為:-1(黑白)、8(256色)、16(增強色)、24/32(真彩色)。
3)window對象
window對象即窗口對象,它是所有對象的“父”對象,可以在JavaScript應(yīng)用程序中創(chuàng)建多個窗口,而一個框架頁面也是一個窗口。
(1)open(參數(shù)表):該方法用來創(chuàng)建一個新的窗口,其中參數(shù)表提供有窗口的尺寸、內(nèi)容以及是否有按鈕條、地址框等屬性?! ?/p>
(2)close():該方法用來關(guān)閉一個窗口。其中,window.close()或self.close()用來關(guān)閉當前窗口;窗口對象名.close()用來關(guān)閉指定的窗口。?
(3)alert(字符串):該方法彈出一個只包含“確定”按鈕的對話框,并顯示“字符串”的內(nèi)容,同時整個文檔的讀取和Script 的運行暫停,直到用戶按下“確定”。
(4)confirm(字符串):該方法彈出一個包含“確定”和“取消”按鈕的對話框,并顯示“字符串”的內(nèi)容,同時整個文檔的讀取和Script 的運行暫停,等待用戶的選擇。如果用戶按下“確定”,則返回 true ,如果按下“取消”,則返回 false。
(5)prompt(字符串[, 初始值]):該方法彈出一個包含“確認”、“取消”按鈕和一個文本框的對話框,并顯示“字符串”的內(nèi)容,要求用戶在文本框輸入數(shù)據(jù),同時整個文檔的讀取和Script 的運行暫停。如果用戶按下“確認”,則返回文本框里已有的內(nèi)容,如果用戶按下“取消”,則返回 null 值。如果指定“初始值”,則文本框里將用初始值作為默認值。
(6)blur()和focus():使窗口失去或得到焦點。
(7)scrollTo?(x, y):該方法使窗口滾動到指定的坐標。
【例6-22】window對象使用(window.html)
<html>
??<head>
????<title>window對象使用</title>
????<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
????<script language="JavaScript">
????alert("window對象使用");
????</script>
???</head>
</html>
運行結(jié)果如圖6-33所示。
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖6-33 ?window對象使用
4)history對象
history對象即歷史對象,包含瀏覽器的瀏覽歷史。其length屬性返回歷史記錄的項數(shù)。
5)location對象
location對象即地址對象,它描述的是某一個窗口對象所打開頁面的URL地址信息。
(1)protocol屬性:返回地址的協(xié)議,取值為“http”、“https”、“file”等。
(2)hostname屬性:返回地址的主機名。
(3)reload()方法:強制窗口重載當前文檔。
(4)replace()方法:從當前歷史記錄裝載指定的URL。
6)document對象
document對象即文檔對象,它描述當前窗口或指定窗口對象從<head>到</body>的文檔信息。
(1)open() :打開文檔。
(2)write()/ writeln(): 向文檔寫入數(shù)據(jù)。writeln() 在寫入數(shù)據(jù)以后換行。
(3)clear():清空當前文檔。
(4)close():關(guān)閉文檔,停止寫入數(shù)據(jù)。
四、JavaScript事件
用戶與網(wǎng)頁交互時產(chǎn)生的動作,稱為事件。事件可以由用戶引發(fā),例如,用戶單擊鼠標按鈕引發(fā)click事件;事件也可以由頁面自身引發(fā)。事件引發(fā)后所執(zhí)行的程序或函數(shù)稱為事件處理程序,指定事件的處理程序的一般方法是直接在HTML標簽中指明函數(shù)名或程序,格式如下:
<標簽 …… 事件="事件處理程序" [事件="事件處理程序" ...]>
例如:
<body …… οnlοad="alert('歡迎?!')" οnunlοad="alert('bye?!')">
該例在文檔讀取完畢時彈出一個對話框,對話框里寫著“歡迎!”;在用戶關(guān)閉窗口或訪問另一個頁面時彈出“bye!”。
經(jīng)常引發(fā)的事件如下所示。
(1)onfocus事件:窗口獲得焦點時引發(fā),應(yīng)用于window 對象。
(2)onload事件:文檔全部載入時引發(fā),應(yīng)用于window 對象,寫在<body>標簽中。
(3)onmousedown事件:鼠標在對象上按下時引發(fā),應(yīng)用于Button 對象、Link 對象。
(4)onmouseout事件:鼠標離開對象時引發(fā),應(yīng)用于Link 對象。
(5)onmouseover事件:鼠標進入對象時引發(fā),應(yīng)用于Link 對象。
(6)onmouseup事件:鼠標在對象上按下后彈起時引發(fā),應(yīng)用于Button 對象、Link 對象。
(7)onreset事件:“重置”按鈕被單擊時引發(fā),應(yīng)用于Form 對象。
(8)onresize事件:窗口被調(diào)整大小時引發(fā),應(yīng)用于window 對象。
(9)onsubmit事件:“提交”按鈕被單擊時引發(fā),應(yīng)用于Form 對象。
? ?(10)onunload事件:卸載文檔時引發(fā),應(yīng)用于window 對象,寫在<body>標簽中
閱讀目錄(置頂)(長期更新計算機領(lǐng)域知識)https://blog.csdn.net/weixin_43392489/article/details/102380691
閱讀目錄(置頂)(長期更新計算機領(lǐng)域知識)https://blog.csdn.net/weixin_43392489/article/details/102380882
總結(jié)
以上是生活随笔為你收集整理的第十三期:你所了解的javascript?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10项目开工会
- 下一篇: 高德地图:No implementati