JavaScript 具有如下特征:
一段 JavaScript 腳本由包含在網(wǎng)頁(yè)頁(yè)面中 <script>... </script>
標(biāo)簽內(nèi)的 JavaScript 語(yǔ)句組成。
編程人員可以隨意將由 <script>
標(biāo)簽包含著的 JavaScript 腳本置于網(wǎng)頁(yè)的任意位置,但是通常都會(huì)放在 <head>
標(biāo)簽內(nèi)。
<script>
標(biāo)記用來(lái)讓瀏覽器明白這個(gè)標(biāo)簽之間的語(yǔ)句需要作為腳本來(lái)解釋。所以,JavaScript 腳本可以簡(jiǎn)單的按照如下形勢(shì)來(lái)表示:
<script ...>
JavaScript code
</script
<script>
標(biāo)簽有兩個(gè)很重要的屬性:
所以 JavaScript 片段是如下形式:
<script language="javascript" type="text/javascript">
JavaScript code
</script>
我們?cè)囍?JavaScript 腳本寫(xiě)一個(gè)打印 “Hello word” 的功能。
<html>
<body>
<script language="javascript" type="text/javascript">
<!--
document.write("Hello World!")
//-->
</script>
</body>
</html>
上面的腳本會(huì)顯示如下結(jié)果:
Hello World!
JavaScript編譯器會(huì)忽略掉腳本中的所有空白、縮進(jìn)符、換行符。
因此,程序員可以在腳本中自用使用空格、縮進(jìn)和換行符,這樣程序員就可以隨意縮進(jìn)格式化程序格式,以便代碼更易于閱讀和理解。
與 C、C++ 和 Java一樣,通常 JavaScript 語(yǔ)句以分號(hào)結(jié)尾。但是, JavaScript 允許在每行只有一句腳本的情況下省略分號(hào)。比如,下方的腳本就是可以省略分號(hào)的:
<script language="javascript" type="text/javascript">
<!--
var1 = 10
var2 = 20
//-->
</script
但是一行中存在多個(gè)腳本語(yǔ)句時(shí),分號(hào)是不能省略的,比如:
<script language="javascript" type="text/javascript">
<!--
var1 = 10; var2 = 20;
//-->
</script>
注意:使用分號(hào)是一個(gè)比較實(shí)用的編程習(xí)慣
JavaScript是一門大小寫(xiě)敏感的語(yǔ)言。這意味著關(guān)鍵詞、變量、函數(shù)名及其他任何標(biāo)識(shí)符在輸入時(shí)都要保持一樣的書(shū)寫(xiě)格式。
所以,Time,TIme 和 TIME 在 JavaScript 中表示不同的意思。
注意:在編寫(xiě)JavaScript腳本時(shí)一定要注意變量和函數(shù)名的書(shū)寫(xiě)。
JavaScript 同樣支持 C 和 C++ 那樣的注釋方式:
在 HTML 文件中何處書(shū)寫(xiě) JavaScript 腳本是非常靈活的。但是,通常情況下都會(huì)將腳本書(shū)寫(xiě)在 HTML 文件中的如下位置內(nèi):
<head>...</head>
內(nèi) <body>...</body>
內(nèi) <body>...</body>
和<head>...</head>
同時(shí)書(shū)寫(xiě) <head>...</head>
內(nèi) JavaScript中可以市容下述三種數(shù)據(jù)類型:
JavaScript也支持另外兩個(gè)常用類型:null和undefined,這兩個(gè)類型均僅限定一個(gè)單一的值。
和其他可編程語(yǔ)言相同,JavaScript也有“變量”的概念?!白兞俊笨梢哉J(rèn)為是有名字的容器。你可以將數(shù)據(jù)置于這些容器中,然后通過(guò)容器的名稱就可以知道數(shù)據(jù)的類型。
值得注意的是,在JavaScript編程過(guò)程中,必須先聲明一個(gè)變量,這個(gè)變量才能被使用。
此外,變量是通過(guò)“var”來(lái)聲明的,例子如下:
<script type="text/javascript">
<!--
var money;
var name;
//-->
</script>
一個(gè)變量的作用域就是該變量定義后在程序中的作用范圍。JavaScript變量有兩個(gè)變量作用域。
JavaScript中變量的命名規(guī)則如下:
下面是JavaScript中的保留關(guān)鍵字。他們不能用來(lái)命名JavaScript中的變量、行數(shù)、方法、循環(huán)標(biāo)簽或任何對(duì)象名稱。
abstract | else | instanceof | switch |
boolean | enum | int | synchronized |
break | export | interface | this |
byte | extends | long | throw |
case | FALSE | native | throws |
catch | final | new | transient |
char | finally | null | TRUE |
class | float | package | try |
const | for | private | typeof |
continue | function | protected | var |
debugger | goto | public | void |
default | if | return | volatile |
delete | implements | short | while |
do | import | static | with |
double | in | super |
JavaScript語(yǔ)言支持以下算術(shù)運(yùn)算符
給定 A=10,B=20,下面的表格解釋了這些算術(shù)運(yùn)算符:
運(yùn)算符 | 描述 | 例子 |
---|---|---|
+ | 兩個(gè)運(yùn)算數(shù)相加 | A + B = 30 |
- | 第一個(gè)運(yùn)算數(shù)減去第二個(gè)運(yùn)算數(shù) | A - B = -10 |
* | 運(yùn)算數(shù)相乘 | A * B = 200 |
/ | 分子除以分母 | B / A = 2 |
% | 模數(shù)運(yùn)算符,整除后的余數(shù) | B % A = 0 |
++ | 增量運(yùn)算符,整數(shù)值逐次加1 | A++ = 11 |
-- | 減量運(yùn)算符,整數(shù)值逐次減1 | A-- = 9 |
JavaScript語(yǔ)言支持以下比較運(yùn)算符
給定 A=10,B=20,下面的表格解釋了這些比較運(yùn)算符:
運(yùn)算符 | 描述 | 例子 |
---|---|---|
== | 檢查兩個(gè)運(yùn)算數(shù)的值是否相等,如果是,則結(jié)果為true | A == B 為false |
!= | 檢查兩個(gè)運(yùn)算數(shù)的值是否相等,如果不相等,則結(jié)果為true | A != B 為true |
> | 檢查左邊運(yùn)算數(shù)是否大于右邊運(yùn)算數(shù),如果是,則結(jié)果為true | A > B 為false |
< | 檢查左邊運(yùn)算數(shù)是否小于右邊運(yùn)算數(shù),如果是,則結(jié)果為true | A < B 為true |
>= | 檢查左邊運(yùn)算數(shù)是否大于或者等于右邊運(yùn)算數(shù),如果是,則結(jié)果為true | A >= B 為false |
<= | 檢查左邊運(yùn)算數(shù)是否小于或者等于運(yùn)算數(shù),如果是,則結(jié)果為true | A <= B 為true |
JavaScript語(yǔ)言支持以下邏輯運(yùn)算符
給定 A=10,B=20,下面的表格解釋了這些邏輯運(yùn)算符
運(yùn)算符 | 描述 | 例子 |
---|---|---|
&& | 稱為邏輯與運(yùn)算符。如果兩個(gè)運(yùn)算數(shù)都非零,則結(jié)果為true。 | A && B 為true |
|| | 稱為邏輯或運(yùn)算符。如果兩個(gè)運(yùn)算數(shù)中任何一個(gè)非零,則結(jié)果為true。 | A || B 為 true |
! | 稱為邏輯非運(yùn)算符。用于改變運(yùn)算數(shù)的邏輯狀態(tài)。如果邏輯狀態(tài)為true,則通過(guò)邏輯非運(yùn)算符可以使邏輯狀態(tài)變?yōu)閒alse | !(A && B) 為false |
JavaScript語(yǔ)言支持以下邏輯運(yùn)算符
給定 A=2,B=3,下面的表格解釋了這些邏輯運(yùn)算符
運(yùn)算符 | 描述 | 例子 |
---|---|---|
& | 稱為按位與運(yùn)算符。它對(duì)整型參數(shù)的每一個(gè)二進(jìn)制位進(jìn)行布爾與操作。 | A & B = 2 . |
| | 稱為按位或運(yùn)算符。它對(duì)整型參數(shù)的每一個(gè)二進(jìn)制位進(jìn)行布爾或操作。 | A | B = 3. |
^ | 稱為按位異或運(yùn)算符。它對(duì)整型參數(shù)的每一個(gè)二進(jìn)制位進(jìn)行布爾異或操作。異或運(yùn)算是指第一個(gè)參數(shù)或者第二個(gè)參數(shù)為true,并且不包括兩個(gè)參數(shù)都為true的情況,則結(jié)果為true。 | (A ^ B) = 1. |
~ | 稱為按位非運(yùn)算符。它是一個(gè)單運(yùn)算符,對(duì)運(yùn)算數(shù)的所有二進(jìn)制位進(jìn)行取反操作。 | ~B = -4 . |
<< | 稱為按位左移運(yùn)算符。它把第一個(gè)運(yùn)算數(shù)的所有二進(jìn)制位向左移動(dòng)第二個(gè)運(yùn)算數(shù)指定的位數(shù),而新的二進(jìn)制位補(bǔ)0。將一個(gè)數(shù)向左移動(dòng)一個(gè)二進(jìn)制位相當(dāng)于將該數(shù)乘以2,向左移動(dòng)兩個(gè)二進(jìn)制位相當(dāng)于將該數(shù)乘以4,以此類推。 | A << 1 = 4. |
>> | 稱為按位右移運(yùn)算符。它把第一個(gè)運(yùn)算數(shù)的所有二進(jìn)制位向右移動(dòng)第二個(gè)運(yùn)算數(shù)指定的位數(shù)。為了保持運(yùn)算結(jié)果的符號(hào)不變,左邊二進(jìn)制位補(bǔ)0或1取決于原參數(shù)的符號(hào)位。如果第一個(gè)運(yùn)算數(shù)是正的,運(yùn)算結(jié)果最高位補(bǔ)0;如果第一個(gè)運(yùn)算數(shù)是負(fù)的,運(yùn)算結(jié)果最高位補(bǔ)1。將一個(gè)數(shù)向右移動(dòng)一位相當(dāng)于將該數(shù)乘以2,向右移動(dòng)兩位相當(dāng)于將該數(shù)乘以4,以此類推。 | A >> 1 = 1. |
>>> | 稱為0補(bǔ)最高位無(wú)符號(hào)右移運(yùn)算符。這個(gè)運(yùn)算符與>>運(yùn)算符相像,除了位移后左邊總是補(bǔ)0. | A >>> = 1. |
JavaScript語(yǔ)言支持以下賦值運(yùn)算符
運(yùn)算符 | 描述 | 例子 |
---|---|---|
= | 簡(jiǎn)單賦值運(yùn)算符,將右邊運(yùn)算數(shù)的值賦給左邊運(yùn)算數(shù) | C = A + B 將A+B的值賦給C |
+= | 加等賦值運(yùn)算符,將右邊運(yùn)算符與左邊運(yùn)算符相加并將運(yùn)算結(jié)果賦給左邊運(yùn)算數(shù) | C += A 相當(dāng)于 C = C + A |
-= | 減等賦值運(yùn)算符,將左邊運(yùn)算數(shù)減去右邊運(yùn)算數(shù)并將運(yùn)算結(jié)果賦給左邊運(yùn)算數(shù) | C -= A 相當(dāng)于C = C - A |
*= | 乘等賦值運(yùn)算符,將右邊運(yùn)算數(shù)乘以左邊運(yùn)算數(shù)并將運(yùn)算結(jié)果賦給左邊運(yùn)算數(shù) | C *= A 相當(dāng)于C = C * A |
/= | 除等賦值運(yùn)算符, 將左邊運(yùn)算數(shù)除以右邊運(yùn)算數(shù)并將運(yùn)算結(jié)果賦值給左邊運(yùn)算數(shù) | C /= A 相當(dāng)于 C = C / A |
%= | 模等賦值運(yùn)算符,用兩個(gè)運(yùn)算數(shù)做取模運(yùn)算并將運(yùn)算結(jié)果賦值給左邊運(yùn)算數(shù) | C %= A 相當(dāng)于 C = C % A |
有一種運(yùn)算符叫條件運(yùn)算符。首先判斷一個(gè)表達(dá)式是真或假,然后根據(jù)判斷結(jié)果執(zhí)行兩個(gè)給定指令中的一個(gè)。條件運(yùn)算符語(yǔ)法如下
運(yùn)算符 | 描述 | 例子 |
---|---|---|
? : | 條件表達(dá)式 | 如果條件為真 ? X值 : Y值 |
typeof 是一個(gè)置于單個(gè)參數(shù)之前的一元運(yùn)算符,這個(gè)參數(shù)可以是任何類型的。它的值是一個(gè)表示運(yùn)算數(shù)的類型的字符串。
typeof 運(yùn)算符可以判斷“數(shù)值”,“字符串”,“布爾”類型,看運(yùn)算數(shù)是一個(gè)數(shù)字,字符串還是布爾值,并且根據(jù)判斷結(jié)果返回true或者false。
if語(yǔ)句是基本的控制語(yǔ)句,能使JavaScript做出決定并且按條件執(zhí)行語(yǔ)句。
if (expression){
Statement(s) to be executed if expression is true
}
if...else 語(yǔ)句是另一種控制語(yǔ)句,它能使JavaScript選擇多個(gè)代碼塊之一來(lái)執(zhí)行。
if (expression){
Statement(s) to be executed if expression is true
}else{
Statement(s) to be executed if expression is false
}
if...else if... 語(yǔ)句是一種推進(jìn)形式的控制語(yǔ)句,它能使 JavaScript 選擇多個(gè)代碼塊之一來(lái)執(zhí)行。
if (expression 1){
Statement(s) to be executed if expression 1 is true
}else if (expression 2){
Statement(s) to be executed if expression 2 is true
}else if (expression 3){
Statement(s) to be executed if expression 3 is true
}else{
Statement(s) to be executed if no expression is true
}
語(yǔ)句的基本語(yǔ)法是給定一個(gè)判斷表達(dá)式以及若干不同語(yǔ)句,根據(jù)表達(dá)式的值來(lái)執(zhí)行這些語(yǔ)句。編譯器檢查每個(gè)case是否與表達(dá)式的值相匹配。如果沒(méi)有與值相匹配的,則執(zhí)行default缺省條件。
switch (expression)
{
case condition 1: statement(s)
break;
case condition 2: statement(s)
break;
...
case condition n: statement(s)
break;
default: statement(s)
}
循環(huán)是 JavaScript 中最基本的循環(huán)模式,下邊將加以介紹。
while(expression){
statement
}
do...while 循環(huán)和 while 循環(huán)非常相似,它們之間的區(qū)別是 while 語(yǔ)句為先判斷條件是否成立在執(zhí)行循環(huán)體,而 do...while 循環(huán)語(yǔ)句則先執(zhí)行一次循環(huán)后,再判斷條件是否成立。也就是說(shuō)即使判斷條件不成立,do...while 循環(huán)語(yǔ)句中“{}”中的程序段至少要被執(zhí)行一次。
do{
statement
}while(expression);
循環(huán)是一種最簡(jiǎn)潔的循環(huán)模式,包括三個(gè)重要部分
可以將這三個(gè)部分放在同一行,用分號(hào)隔開(kāi)。
for(initialize;test condition;iteration statement)
{
statement;
}
for (variablename in object){
statement
}
在每次迭代中將一個(gè)對(duì)象的屬性賦值給變量,這個(gè)循環(huán)會(huì)持續(xù)到這個(gè)對(duì)象的所有屬性都枚舉完。
Break語(yǔ)句用于提前跳出循環(huán),打破封閉的循環(huán)體。
Continue語(yǔ)句告訴解釋器立即開(kāi)始下一次迭代的循環(huán)和跳過(guò)剩余的代碼塊。
當(dāng)遇到continue語(yǔ)句,程序流將立即循環(huán)檢查表達(dá)式,如果條件保持真那么下個(gè)迭代開(kāi)始,否則控制跳出循環(huán)體。
使用一個(gè)函數(shù)之前,我們需要定義該函數(shù)。在 JavaScript 中最常見(jiàn)的定義一個(gè)函數(shù)的方式是使用函數(shù)關(guān)鍵字,緊隨其后的是一個(gè)獨(dú)特的函數(shù)名,參數(shù)列表(也可能是空的),和一個(gè)被花括號(hào)包圍的語(yǔ)句塊。這里顯示的基本語(yǔ)法
<script type="text/javascript">
<!--
function functionname(parameter-list)
{
statements
}
//-->
</script>
在腳本中調(diào)用某個(gè)函數(shù)之后,你會(huì)需要簡(jiǎn)單的編寫(xiě)的函數(shù)的名稱如下
<script type="text/javascript">
<!--
sayHello();
//-->
</script>
異常通常使用 try/catch/finally 結(jié)構(gòu)來(lái)進(jìn)行處理。
<script type="text/javascript">
<!--
try {
statementsToTry
} catch ( e ) {
catchStatements
} finally {
finallyStatements
}
//-->
</script>
try部分后面必須緊隨catch后者finally部分(同時(shí)或者其一)。當(dāng)在catch部分中發(fā)生異常事件后,異常會(huì)被存儲(chǔ)于e變量中,然后catch部分會(huì)被執(zhí)行。而finally部分會(huì)在try/catch之后必然執(zhí)行。
警告對(duì)話框是最常用的,它通常被用來(lái)給用戶提示一些警告信息。比如,某個(gè)輸入?yún)^(qū)域需要用戶輸入一些文本信息,但是用戶并沒(méi)有輸入任何信息,那么為了使用戶輸入有效的信息,你可以利用警告對(duì)話框來(lái)提示警告信息,如下:
<head>
<script type="text/javascript">
<!--
alert("Warning Message");
//-->
</script>
</head>
確認(rèn)對(duì)話框是最常用來(lái)獲取用戶對(duì)任何選項(xiàng)的贊成的觀點(diǎn)。確認(rèn)對(duì)話框會(huì)顯示兩個(gè)按鈕:Ok 和 Cancel。
你可以像如下的方式使用確認(rèn)對(duì)話框:
<head>
<script type="text/javascript">
<!--
var retVal = confirm("Do you want to continue ?");
if( retVal == true ){
alert("User wants to continue!");
return true;
}else{
alert("User does not want to continue!");
return false;
}
//-->
</script>
</head>
你可以使用如下的方式來(lái)實(shí)現(xiàn)提示對(duì)話框
<head>
<script type="text/javascript">
<!--
var retVal = prompt("Enter your name : ", "your name here");
alert("You have entered : " + retVal );
//-->
</script>
</head>
利用 JavaScript 在客戶端進(jìn)行重定向是非常簡(jiǎn)單的。為了重定向你的網(wǎng)站,你僅僅只需要在網(wǎng)頁(yè)代碼的頭部中添加一行代碼,如下
<head>
<script type="text/javascript">
<!--
var retVal = prompt("Enter your name : ", "your name here");
alert("You have entered : " + retVal );
//-->
</script>
</head>
JavaScript 中 void 是一個(gè)重要的關(guān)鍵字。它可以用作一個(gè)一元運(yùn)算符,此時(shí)它會(huì)出現(xiàn)在一個(gè)操作數(shù)之前,這個(gè)操作數(shù)可以是任意類型的。
這個(gè)操作符指定要計(jì)算一個(gè)表達(dá)式但是不返回值。它的語(yǔ)法可能是下列之一
<head>
<script type="text/javascript">
<!--
void func()
javascript:void func()
or:
void(func())
javascript:void(func())
//-->
</script>
</head>
JavaScript 能使用 window 對(duì)象的打印函數(shù)print來(lái)幫你實(shí)現(xiàn)這個(gè)功能。
當(dāng)JavaScript的打印方法 window.print() 執(zhí)行后,就會(huì)打印當(dāng)前的 web 頁(yè)面。
你可以使用 onclick 事件直接調(diào)用這個(gè)函數(shù),如下所示
<head>
<script type="text/javascript">
<!--
//-->
</script>
</head>
<body>
<form>
<input type="button" value="Print" onclick="window.print()" />
</form>
</body>
創(chuàng)建 Cookie 最簡(jiǎn)單的方式就是給 document.cookie 對(duì)象賦值一個(gè)字符串值,它的語(yǔ)法如下
document.cookie = "key1=value;key2=value2;expires=date";
讀取 Cookie 就像寫(xiě)它一樣簡(jiǎn)單,因?yàn)?document.cookie 對(duì)象的值就是 Cookie 的屬性值。因此你可以利用這個(gè)字符串在任何時(shí)候?qū)?Cookie 進(jìn)行訪問(wèn)。
document.cookie 字符串會(huì)保存一系列用分號(hào)分開(kāi)的 name = value 鍵值對(duì),這里的 name 就是一個(gè) Cookie 名稱,value 是它的值。
更多建議: