一、介紹
一種客戶端語言,在瀏覽器執(zhí)行,原名叫ECMAScript。是一種直接就能解釋執(zhí)行的腳本語言(就是說,代碼執(zhí)行不進行預(yù)編譯),另外還有dos命令,SQL。它是非常靈活的動態(tài)語言,不嚴(yán)謹(jǐn)。數(shù)據(jù)類型不固定。用途很廣常被用來改進設(shè)計、驗證表單、檢測瀏覽器、創(chuàng)建cookies......
二、基本組成
Dom(文檔對象模型)
Bom(瀏覽器對象,有兼容性的問題)
三、如何實現(xiàn) JavaScript
1.方式一:
<script language = "javascript" type="text/javascript">
document.write("輸出的文字");
</script>
2.方式二:
<script src="helloworld.js"></script>
3.如何與老的瀏覽器打交道:
那些不支持 JavaScript 的瀏覽器會把腳本作為頁面的內(nèi)容來顯示。為了防止這種情況發(fā)生,我們可以使用這樣的 HTML 注釋標(biāo)簽:
<script type="text/javascript">
<!--
document.write("Hello World!");
//-->
</script>
注:釋行末尾的兩個正斜杠是 JavaScript 的注釋符號,它會阻止 JavaScript 編譯器對這一行的編譯。
四、 放置何處
當(dāng)頁面載入時,會執(zhí)行位于 body 部分的 JavaScript。
當(dāng)被調(diào)用時,位于 head 部分的 JavaScript 才會被執(zhí)行。
你可以在文檔中放置任何數(shù)量的腳本,因此你既可以把腳本放置到 body,又可以放置到 head 部分。
注意:在一個HTML文檔中,所有位置的腳本代碼,包括引入的外部js代碼,他們都將成為一個整體。你可以把他們想象成在一個類中。因此,有時來自不同文件的重名方法或重名變量,會導(dǎo)致意想不到的錯誤發(fā)生。
五、語法
JavaScript 是由瀏覽器執(zhí)行的語句序列。這些命令的作用是告訴瀏覽器要做的事情。通常要在每行語句的結(jié)尾加上一個分號。
1.數(shù)據(jù)類型
5 種基本數(shù)據(jù)類型?
undefined / null / boolean / number / string
1種復(fù)雜的數(shù)據(jù)類型 : Object類型,Object類型是所有其他對象的基類。
注意:JavaScript并不區(qū)分浮點數(shù)和整數(shù),都是用number來表示。
2.基本操作符
算術(shù)運算符:+? –? *? /? %? ++? --? ,其中+號還被重載用于拼接字符串,另外,任何類型+上字符串都是字符串。
賦值運算符:=? +=? -=? *=? /=? %=
比較運算符:==? ===? !=? >? <? >=? <=
邏輯運算符:&&? ||? !
條件運算符:? :
3.控制語句
這就是我們常說的if-else之類的控制語句。
常用的并不多:if語句、switch語句、for語句、while語句、for-in語句。
4.函數(shù)
將腳本編寫為函數(shù),就可以避免頁面載入時執(zhí)行該腳本。函數(shù)包含著一些代碼,這些代碼只能被事件激活,或者在函數(shù)被調(diào)用時才會執(zhí)行。你可以在頁面中的任何位置調(diào)用腳本(如果函數(shù)嵌入一個外部的 .js 文件,那么甚至可以從其他的頁面中調(diào)用)。建議將函數(shù)在頁面起始位置定義,即? 部分。JavaScript函數(shù)相對其他語言來說有很大不同。JavaScript函數(shù)既可以作為參數(shù),也可以作為返回值。此外JavaScript函數(shù)可以接受任意數(shù)量的參數(shù),并且可以通過arguments對象來訪問這些參數(shù)。
創(chuàng)建函數(shù)的語法:
function 函數(shù)名() { 代碼... }
function 函數(shù)名(var1,var2,...,varX) { 代碼... }
5.變量
JavaScript 是一種弱類型的語言,因此變量的類型由賦值號右邊的數(shù)據(jù)所決定。
JavaScript 變量名稱的規(guī)則:
應(yīng)該起一些具有意義的,描述性的,讓人望文生義的變量名
變量對大小寫敏感(y 和 Y 是兩個不同的變量)【JavaScript 對大小寫敏感】
變量必須以字母或下劃線開始
變量名不能使用系統(tǒng)的關(guān)鍵字或保留字
類型分為兩種:基本類型和引用類型
基本類型:是前面提到的5種基本數(shù)據(jù)類型,在內(nèi)存中占據(jù)實際大小的空間,賦值的時候,會在內(nèi)存中創(chuàng)建一份新的副本。保存在棧內(nèi)存中。?
引用類型:是前面提到的Object以及基于它的其他復(fù)雜數(shù)據(jù)類型,指向?qū)ο蟮闹羔樁皇菍ο蟊旧?,賦值的時候,只是創(chuàng)建了一個新的指針指向?qū)ο?。保存在堆?nèi)存中。
JavaScript 變量的生存期
當(dāng)在函數(shù)內(nèi)聲明了一個變量后,就只能在該函數(shù)中訪問該變量。當(dāng)退出該函數(shù)后,這個變量會被撤銷。這種變量稱為本地變量。你可以在不同的函數(shù)中使用名稱相同的本地變量,這是因為只有聲明過變量的函數(shù)能夠識別其中的每個變量。
如果您在函數(shù)之外聲明了一個變量,則頁面上的所有函數(shù)都可以訪問該變量。這些變量的生存期從聲明它們之后開始,在頁面關(guān)閉時結(jié)束。
6. 消息框
三種消息框:警告框、確認(rèn)框、提示框
alert("文本");警告框經(jīng)常用于確保用戶可以得到某些信息。當(dāng)警告框出現(xiàn)后,用戶需要點擊確定按鈕才能繼續(xù)進行操作。
confirm("文本");確認(rèn)框用于使用戶可以驗證或者接受某些信息。當(dāng)確認(rèn)框出現(xiàn)后,用戶需要點擊確定或者取消按鈕才能繼續(xù)進行操作。如果用戶點擊確認(rèn),那么返回值為 true。如果用戶點擊取消,那么返回值為 false。
prompt("文本","默認(rèn)值");提示框經(jīng)常用于提示用戶在進入頁面前輸入某個值。當(dāng)提示框出現(xiàn)后,用戶需要輸入某個值,然后點擊確認(rèn)或取消按鈕才能繼續(xù)操縱。如果用戶點擊確認(rèn),那么返回值為輸入的值。如果用戶點擊取消,那么返回值為 null。
7. 事件
事件是可以被 JavaScript 偵測到的行為。JavaScript 使我們有能力創(chuàng)建動態(tài)頁面。事件是可以被 JavaScript 偵測到的行為。網(wǎng)頁中的每個元素都可以產(chǎn)生某些可以觸發(fā) JavaScript 函數(shù)的事件。比方說,我們可以在用戶點擊某按鈕時產(chǎn)生一個 onClick 事件來觸發(fā)某個函數(shù)。事件在 HTML 頁面中定義。
事件舉例:
鼠標(biāo)點擊
頁面或圖像載入
鼠標(biāo)懸浮于頁面的某個熱點之上
在表單中選取輸入框
確認(rèn)表單
鍵盤按鍵
注意:事件通常與函數(shù)配合使用,當(dāng)事件發(fā)生時函數(shù)才會執(zhí)行。
onload 和 onUnload
當(dāng)用戶進入或離開頁面時就會觸發(fā) onload 和 onUnload 事件。onload 事件常用來檢測訪問者的瀏覽器類型和版本,然后根據(jù)這些信息載入特定版本的網(wǎng)頁。onload 和 onUnload 事件也常被用來處理用戶進入或離開頁面時所建立的 cookies。例如,當(dāng)某用戶第一次進入頁面時,你可以使用消息框來詢問用戶的姓名。姓名會保存在 cookie 中。當(dāng)用戶再次進入這個頁面時,你可以使用另一個消息框來和這個用戶打招呼:"Welcome John Doe!"。
onFocus, onBlur 和 onChange
通常相互配合用來驗證表單。下面是一個使用 onChange 事件的例子。用戶一旦改變了域的內(nèi)容,checkEmail() 函數(shù)就會被調(diào)用。
onSubmit
用于在提交表單之前驗證所有的表單域。
onMouseOver 和 onMouseOut
用來創(chuàng)建“動態(tài)的”按鈕。
8.try...catch語句
有兩種在網(wǎng)頁中捕獲錯誤的方法:
使用 try...catch 語句。(在 IE5+、Mozilla 1.0、和 Netscape 6 中可用)
使用 onerror 事件。這是用于捕獲錯誤的老式方法。(Netscape 3 以后的版本可用)
注意:chrome、opera 和 safari 瀏覽器不支持 onerror 事件。【不建議使用此方式】
9.Throw 聲明
throw 聲明的作用是創(chuàng)建 exception(異常)。你可以把這個聲明與 try...catch 聲明配合使用,以達到控制程序流并產(chǎn)生精確錯誤消息的目的。
10.特殊字符
?JavaScript 中使用反斜杠來向文本字符串添加特殊字符。