JavaScirpt變量
JavaScript 變量名稱的規(guī)則:
- 應(yīng)該起一些具有意義的然想,描述性的摹菠,讓人望文生義的變量名
- 變量對大小寫敏感(y 和 Y 是兩個不同的變量)【JavaScript 對大小寫敏感】
- 變量必須以字母或下劃線開始
- 變量名不能使用系統(tǒng)的關(guān)鍵字或保留字
JavaScript 變量的類型:
- JavaScript 是一種弱類型的語言操刀,因此變量的類型由賦值號右邊的數(shù)據(jù)所決定乒验。
JavaScript 運算符
算術(shù)運算符:+ – * / % ++ -- 俄认,其中+號還被重載用于拼接字符串往毡,另外蒙揣,任何類
型+上字符串都是字符串。賦值運算符:= += -= *= /= %=
比較運算符:== === != > < >= <=
邏輯運算符:&& || !
條件運算符:开瞭? :
JavaScript 分支語句
傳統(tǒng)的 if 懒震。。else嗤详,if 个扰。。else if 葱色。递宅。else 的嵌套都是可行的。
switch(n)中的 n 可以是表達式苍狰,但通常是變量办龄,case 結(jié)構(gòu)中也需要使用 break 分隔。
JavaScript 消息框
可以在 JavaScript 中創(chuàng)建三種消息框:警告框淋昭、確認框土榴、提示框。
警告框經(jīng)常用于確保用戶可以得到某些信息响牛。當(dāng)警告框出現(xiàn)后玷禽,用戶需要點擊確定按鈕才能繼續(xù)進行操作。
alert("文本")確認框用于使用戶可以驗證或者接受某些信息呀打。當(dāng)確認框出現(xiàn)后矢赁,用戶需要點擊確定或者取消按鈕才能繼續(xù)進行操作。如果用戶點擊確認贬丛,那么返回值為 true撩银。如果用戶點擊取消,那么返回值為 false豺憔。
confirm("文本")提示框經(jīng)常用于提示用戶在進入頁面前輸入某個值额获。當(dāng)提示框出現(xiàn)后,用戶需要輸入某個值恭应,然后點擊確認或取消按鈕才能繼續(xù)操縱抄邀。如果用戶點擊確認,那么返回值為輸入的值昼榛。如果用戶點擊取消境肾,那么返回值為 null。
prompt("文本","默認值")
JavaScript 函數(shù)
- 將腳本編寫為函數(shù),就可以避免頁面載入時執(zhí)行該腳本奥喻。函數(shù)包含著一些代碼偶宫,這些代碼只能被事件激活,或者在函數(shù)被調(diào)用時才會執(zhí)行环鲤。你可以在頁面中的任何位置調(diào)用腳本(如果函數(shù)嵌入一個外部的 .js 文件纯趋,那么甚至可以從其他的頁面中調(diào)用)。
建議將函數(shù)在頁面起始位置定義冷离,即 <head> 部分吵冒。
** 創(chuàng)建函數(shù)的語法:**
function 函數(shù)名() { 代碼... }
function 函數(shù)名(var1,var2,...,varX) { 代碼... }
JavaScript 變量的生存期
- 當(dāng)您在函數(shù)內(nèi)聲明了一個變量后,就只能在該函數(shù)中訪問該變量酒朵。當(dāng)退出該函數(shù)后桦锄,這個變量會被撤銷扎附。這種變量稱為本地變量蔫耽。您可以在不同的函數(shù)中使用名稱相同的本地變量,這是因為只有聲明過變量的函數(shù)能夠識別其中的每個變量留夜。
如果您在函數(shù)之外聲明了一個變量匙铡,則頁面上的所有函數(shù)都可以訪問該變量。這些變量的生存期從聲明它們之后開始碍粥,在頁面關(guān)閉時結(jié)束鳖眼。
JavaScript 循環(huán)
- 在編寫代碼時,你常常希望反復(fù)執(zhí)行同一段代碼嚼摩。我們可以使用循環(huán)來完成這個功能钦讳,這樣就用不著重復(fù)地寫若干行相同的代碼。
JavaScript 有兩種(也只有2種)不同種類的循環(huán):
for
將一段代碼循環(huán)執(zhí)行指定的次數(shù)
while
當(dāng)指定的條件為 true 時循環(huán)執(zhí)行代碼
語法格式和java或.NET是一樣的枕面。
使用什么語句可以直接跳出多重循環(huán)愿卒?
- continue 語句可以在符合一定的條件下結(jié)束本輪循環(huán),直接進行下一輪循環(huán)潮秘。
break? 語句可以在符合一定的條件下直接結(jié)束循環(huán)琼开,代碼會跳轉(zhuǎn)到循環(huán)外靠后的最近一條語句繼續(xù)向下執(zhí)行。
在 .NET 中枕荞,goto 語句可以直接定位到指定的標(biāo)記為繼續(xù)執(zhí)行代碼柜候,而 javascript 中是沒有 goto 語句的,那么怎么直接跳出多重循環(huán)呢躏精?
看下面的示例:
outerloop: // 命名外圈語句
for(var i=0; i<10; i++)
{
innerloop://命名內(nèi)圈語句
for(var j=0; j<10; j++)
{
// 跳出內(nèi)圈循環(huán)
if(j>3){break;}
// 跳出內(nèi)圈循環(huán)
if(i==2){break innerloop;}
// 跳出外圈循環(huán)
if(i==4){break outerloop;}
document.write("i = "+i+" , j = "+j+"<br />");
}
}
document.write("final"+" i = "+i+" , j = "+j);
可以在循環(huán)外設(shè)置標(biāo)記為渣刷,然后使用 break 或 continue 加上標(biāo)記名直接跳出循環(huán)。這里要注意矗烛,和其他語言不同飞主,JS中一旦跳出,程序是不會繼續(xù)從標(biāo)記位處再度往下執(zhí)行代碼的,而是直接執(zhí)行最外層循環(huán)之后的 code碌识,如果后面沒有 code碾篡,那么程序就此結(jié)束。
JavaScript For...In 聲明
For...In 聲明用于遍歷數(shù)組或者對象的屬性(對數(shù)組或者對象的屬性進行循環(huán)操作)筏餐。[也是 for 循環(huán)家族的一員]
下例是使用 for..in 遍歷一個數(shù)組對象开泽,注意這里 .NET 中 foreach 的區(qū)別。
var x
var mycars = new Array();
mycars[0] = "Saab";
mycars[1] = "Volvo";
mycars[2] = "BMW";
for (x in mycars)
{
document.write(mycars[x] + "<br />");
}
JavaScript 事件
事件是可以被 JavaScript 偵測到的行為魁瞪。
- JavaScript 使我們有能力創(chuàng)建動態(tài)頁面穆律。事件是可以被 JavaScript 偵測到的行為。
網(wǎng)頁中的每個元素都可以產(chǎn)生某些可以觸發(fā) JavaScript 函數(shù)的事件导俘。比方說峦耘,我們可以在用戶點擊某按鈕時產(chǎn)生一個 onClick 事件來觸發(fā)某個函數(shù)。事件在 HTML 頁面中定義旅薄。
事件舉例:
鼠標(biāo)點擊
頁面或圖像載入
鼠標(biāo)懸浮于頁面的某個熱點之上
在表單中選取輸入框
確認表單
鍵盤按鍵
注意:事件通常與函數(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
- onFocus湘纵、onBlur 和 onChange 事件通常相互配合用來驗證表單。
下面是一個使用 onChange 事件的例子液荸。用戶一旦改變了域的內(nèi)容瞻佛,checkEmail() 函數(shù)就會被調(diào)用。
<input type="text" size="30" id="email"onchange="checkEmail()
">
onSubmit
- onSubmit 用于在提交表單之前驗證所有的表單域娇钱。
下面是一個使用 onSubmit 事件的例子伤柄。當(dāng)用戶單擊表單中的確認按鈕時,checkForm() 函數(shù)就會被調(diào)用文搂。假若域的值無效适刀,此次提交就會被取消。checkForm() 函數(shù)的返回值是 true 或者 false煤蹭。如果返回值為true笔喉,則提交表單取视,反之取消提交。
<form method="post" action="xxx.htm"onsubmit="return checkForm()">
onMouseOver 和 onMouseOut
- onMouseOver 和 onMouseOut 用來創(chuàng)建“動態(tài)的”按鈕常挚。
JavaScript Try...Catch 語句
JavaScript - 捕獲錯誤
- 當(dāng)我們在網(wǎng)上沖浪時作谭,總會看到帶有 runtime 錯誤的 Javascript 警告框,同時會詢問我們“是否進行 debug奄毡?”折欠。像這樣的錯誤信息或許對開發(fā)人員有用,對用戶則未必吼过。當(dāng)錯誤發(fā)生時锐秦,他們往往會選擇離開這個站點。
有兩種在網(wǎng)頁中捕獲錯誤的方法:
使用 try...catch 語句盗忱。(在 IE5+酱床、Mozilla 1.0、和 Netscape 6 中可用)
使用 onerror 事件趟佃。這是用于捕獲錯誤的老式方法扇谣。(Netscape 3 以后的版本可用)
注意:chrome、opera 和 safari 瀏覽器不支持 onerror 事件揖闸∽岫椋【不建議使用此方式】
下一個例子會顯示一個確認框料身,讓用戶來選擇在發(fā)生錯誤時點擊確定按鈕來繼續(xù)瀏覽網(wǎng)頁汤纸,還是點擊取消按鈕來回到首頁。
<html>
<head>
<script type="text/javascript">
var txt=""
function message()
{
try
{
adddlert("Welcome guest!");
}
catch(err)
{
txt = "There was an error on this page.\n\n";
txt += "Click OK to continue viewing this page,\n";
txt += "or Cancel to return to the home page.\n\n";
if(!confirm(txt))
{
document.location.href="http://www.w3school.com.cn/";
}
}
}
</script>
</head>
<body>
<input type="button" value="View message" onclick="message()" />
</body>
</html>
JavaScript Throw 聲明
- throw 聲明的作用是創(chuàng)建 exception(異常)芹血。你可以把這個聲明與 try...catch 聲明配合使用贮泞,以達到控制程序流并產(chǎn)生精確錯誤消息的目的。
下面的實例的作用是測定變量 x 的值幔烛。如果 x 的值大于 10 或者小于 0啃擦,錯誤就會被拋出 (throw)。這個錯誤被 catch 的參數(shù)捕獲后饿悬,就會顯示出自定義的出錯信息令蛉。
<html>
<body>
<script type = "text/javascript">
var x = prompt("Enter a number between 0 and 10:","");
try
{
if(x>10)
throw "Err1";
else if(x<0)
throw "Err2";
}
catch(er)
{
if(er == "Err1")
alert("Error! The value is too high");
if(er == "Err2")
alert("Error! The value is too low");
}
</script>
</body>
</html>
JavaScript 特殊字符
你可以在 JavaScript 中使用反斜杠來向文本字符串添加特殊字符。
反斜杠用來在文本字符串中插入省略號狡恬、換行符珠叔、引號和其他特殊字符。
請看下面的 JavaScript 代碼:
var txt="We are the so-called"Vikings"
from the north."document.write(txt)
- 在 JavaScript 中弟劲,字符串使用單引號或者雙引號來起始或者結(jié)束祷安。這意味著上面的字符串將被截為:We are the so-called。
要解決這個問題兔乞,就必須把在 "Viking" 中的引號前面加上反斜杠 ()汇鞭。這樣就可以把每個雙引號轉(zhuǎn)換為字面上的字符串凉唐。
var txt="We are the so-called"Vikings"
from the north."document.write(txt)
現(xiàn)在 JavaScript 就可以輸出正確的文本字符串了:We are the so-called "Vikings" from the north。
JavaScript 指導(dǎo)方針
JavaScript 對大小寫敏感
名為 "myfunction" 的函數(shù)和名為 "myFunction" 的函數(shù)是兩個不同的函數(shù)霍骄,同樣台囱,變量 "myVar" 和變量 "myvar" 也是不同的。JavaScript 對大小寫敏感 - 所以當(dāng)您創(chuàng)建或使用變量读整、對象及函數(shù)時玄坦,請注意字符的大小寫。
空格
- JavaScript 會忽略多余的空格绘沉。所以您可以在代碼中添加適當(dāng)?shù)目崭窦彘梗沟么a的可讀性更強。下面的兩行是等效的:
name="Hege"name = "Hege"
換行
- 您可以在文本字符串內(nèi)部使用反斜杠對代碼進行折行车伞。下面的例子是正確的:
document.write("Hello \World!")
但是不能像這樣折行:
document.write ("Hello World!")