JavaScript 腳本語言作為一門功能強大、使用范圍較廣的程序語言,其語言基礎包括數據類型、變量、運算符、函數以及核心語句等內容。本篇文章主要介紹JavaScript 腳本語言的基礎知識

一:基礎常識

1.腳本執行順序:JavaScript 腳本解釋器將按照程序代碼出現的順序來解釋程序語句,因此可以將函數定義和變量聲明放在<head>和</head>之間,此時與函數體相關的操作不會被立即執行。

2.大小寫敏感:JavaScript 腳本程序對大小寫敏感,相同的字母,大小寫不同,代表的意義也不同

空白字符

3.空__________白字符包括空格、制表符和換行符等,在編寫腳本代碼時占據一定的空間,但腳本被瀏覽器解釋執行時無任何作用。腳本程序員經常使用空格作為空白字符,JavaScript 腳本解釋器是忽略任何多余空格的

注:在字符串中,空格不被忽略,而作為字符串的一部分顯示出來,在編寫 JavaScript 腳本代碼時,經常需添加適當的空格使腳本代碼層次明晰,方便相關人員查看和維護。

4.分號:在編寫腳本語句時,用分號作為當前語句的結束符

5.塊:在定義函數時,使用大括號“{}”將函數體封裝起來

二:數據類型

首先要說明的是在javascript中沒有特定的數據類型修飾符,基本數據類不管是什么類型,在定義的時候都是用var

1.整型和浮點數值:JavaScript 允許使用整數類型和浮點類型兩種數值,其中整數類型包含正整數、0 和負整數;而浮點數則可以是包含小數點的實數,也可以是用科學計數法表示的實數

2 八進制和十六進制在整數類型的數值中,數制可使用十進制、八進制以及十六進制

三.變量

1.變量標識符:與C++、Java 等高級程序語言使用多個變量標識符不同,JavaScript 腳本語言使用關鍵字var 作為其唯一的變量標識符,其用法為在關鍵字var 后面加上變量名。

2.變量作用域要討論變量的作用域,首先要清楚全局變量和局部變量的聯系和區別:

??? 全局變量:可以在腳本中的任何位置被調用,全局變量的作用域是當前文檔中整個腳本區域。

??? 局部變量:只能在此變量聲明語句所屬的函數內部使用,局部變量的作用域僅為該函數體。

聲明變量時,要根據編程的目的決定將變量聲明為全局變量還是局部變量。一般而言,保存全局信息(如表格的原始大小、下拉框包含選項對應的字符串數組等)的變量需聲明為全局變量,而保存臨時信息(如待輸出的格式字符串、數學運算中間變量等)的變量則聲明

為局部變量。

3.弱類型:JavaScript 腳本語言像其他程序語言一樣,其變量都有數據類型,具體數據類型將在下一節中介紹。高級程序語言如C++、Java 等為強類型語言,與此不同的是,JavaScript 腳本語言是弱類型語言,在變量聲明時不需顯式地指定其數據類型,變量的數據類型將根據變量的具體內容推導出來,且根據變量內容的改變而自動更改,而強類型語在變量聲明時必須顯式地指定其數據類型。變量聲明時不需顯式指定其數據類型既是 JavaScript 腳本語言的優點也是缺點,優點是編寫腳本代碼時不需要指明數據類型,使變量聲明過程簡單明了;缺點就是有可能造成因微妙的拼寫不當而引起致命的錯誤。

4.基本數據類型:在實現預定功能的程序代碼中,一般需定義變量來存儲數據(作為初始值、中間值、最終值或函數參數等)。變量包含多種類型,JavaScript 腳本語言支持的基本數據類型包括

Number 型、String 型、Boolean 型、Undefined 型、Null 型和Function 型,下面簡單介紹一下幾種數據類型:

4.1 Number 型:Number 型數據即為數值型數據,包括整數型和浮點型,整數型數制可以使用十進制、八進制以及十六進制標識,而浮點型為包含小數點的實數,且可用科學計數法來表示。一般來說,Number 型數據為不在括號內的數字

4.2 Undefined 型:Undefined 型即為未定義類型,用于不存在或者沒有被賦初始值的變量或對象的屬性,如下列語句定義變量name 為Undefined 型:

var name;定義Undefined 型變量后,可在后續的腳本代碼中對其進行賦值操作,從而自動獲得由其值決定的數據類型。

4.2 Null 型:Null 型數據表示空值,作用是表明數據空缺的值,一般在設定已存在的變量(或對象的屬性)為空時較為常用。區分Undefined 型和Null 型數據比較麻煩,一般將Undefined 型和Null 型等同對待。

4.3 Function 型:Function 型表示函數,可以通過new 操作符和構造函數Function()來動態創建所需功能的函數,并為其添加函數體。例如:

var myFuntion = new Function()

{staments;};

JavaScript 腳本語言除了支持上述六種基本數據類型外,也支持組合類型,如數組Array和對象Object 等,下面介紹組合類型。

四:組合類型

1.Array 型:Array 型即為數組,數組是包含基本和組合數據的序列。在JavaScript 腳本語言中,每一種數據類型對應一種對象,數組本質上即為Array 對象。考察如下定義:

var score = [56,34,23,76,45];

上述語句創建數組score,中括號“[]”內的成員為數組元素。由于JavaScript 是弱類型語言,因此不要求目標數組中各元素的數據類型均相同,例如:var score = [56,34,”23”,76,”45”];

由于數組本質上為Array 對象,則可用運算符new 來創建新的數組,例如:var score=new Array(56,34,”23”,76,”45”);

訪問數組中特定元素可通過該元素的索引位置index 來實現,如下列語句聲明變量m 返回數組score 中第四個元素:

var m = score [3];

數組作為Array 對象,具有最重要的屬性length,用來保存該數組的長度

Object 型對象為可包含基本和組合數據的組合類型,且對象的成員作為對象的屬性,對象的成員函數作為對象的方法。在JavaScript 腳本語言中,可通過在對象后面加句點“.”并加上對象

屬性(或方法)的名稱來訪問對象的屬性(或方法),例如:

document.bgColor

document.write(“Welcome to JavaScript World!”);

五:運算符

1 賦值運算符:JavaScript 腳本語言的賦值運算符包含“=”、“+=”、“-=”、“*=”、“/=”、“%=”、“&=”、“^=”等

運算符 舉例 簡要說明

=      m=n 將運算符右邊變量的值賦給左邊變量

+=     m+=n 將運算符兩側變量的值相加并將結果賦給左邊變量

-=      m-=n 將運算符兩側變量的值相減并將結果賦給左邊變量

*=      m*=n 將運算符兩側變量的值相乘并將結果賦給左邊變量

/=       m/=n 將運算符兩側變量的值相除并將整除的結果賦給左邊變量

%=      m%=n 將運算符兩側變量的值相除并將余數賦給左邊變量

&=      m&=n 將運算符兩側變量的值進行按位與操作并將結果賦值給左邊變量

^=      m^=n 將運算符兩側變量的值進行按位或操作并將結果賦值給左邊變量

<<=    m<<=n 將運算符左邊變量的值左移由右邊變量的值指定的位數,并將操作的結果賦予左邊變量

>>=     m>>=n 將運算符左邊變量的值右移由右邊變量的值指定的位數,并將操作的結果賦予左邊變量

>>>=    m>>>=n 將運算符左邊變量的值邏輯右移由右邊變量的值指定的位數,并將操作的結果賦給左邊變量

賦值運算符是編寫 JavaScript 腳本代碼時最為常用的操作,讀者應熟練掌握各個運算符的功能,避免混淆其具體作用。

2 基本數學運算符:JavaScript 腳本語言中基本的數學運算包括加、減、乘、除以及取余等,其對應的數學

運算符分別為“+”、“-”、“*”、“/”和“%”

3.位運算符:JavaScript 腳本語言支持的基本位運算符包括:“&”、“|”、“^”和“~”等。腳本代碼執行位運算時先將操作數轉換為二進制數,操作完成后將返回值轉換為十進制

位運算符 舉例 簡要說明

&  9&4 按位與,若兩數據對應位都是1,則該位為1,否則為0

^   9^4 按位異或,若兩數據對應位相反,則該位為1,否則為0

|    9|4 按位或,若兩數據對應位都是0,則該位為0,否則為1

~    ~4 按位非,若數據對應位為0,則該位為1,否則為0

位運算符在進行數據處理、邏輯判斷等方面使用較為廣泛,恰當應用位運算符,可節省大量腳本代碼。

3.自加和自減:自加運算符為“++”和自減運算符為“--”分別將操作數加1 或減1。值得注意的是,

自加和自減運算符放置在操作數的前面和后面含義不同。運算符寫在變量名前面,則返回值

為自加或自減前的值;而寫在后面,則返回值為自加或自減后的值。

4.比較運算符JavaScript 腳本語言中用于比較兩個數據的運算符稱為比較運算符,包括“= =”、“!=”、“>”、“<”、“<=”、“>=”等

5.邏輯運算符:JavaScript 腳本語言的邏輯運算符包括“&&”、“||”和“!”等,用于兩個邏輯型數據之間的操作,返回值的數據類型為布爾型

6.逗號運算符:編寫JavaScript 腳本代碼時,可使用逗號“,”將多個語句連在一起,瀏覽器載入該代碼時,將其作為一個完整的語句來調用,但語句的返回值是最右邊的語句。逗號“,”一般用于在函數定義和調用時分隔多個參數,

7.對象運算符JavaScript 腳本語言主要支持四種對象運算符,包括點號運算符、new 運算符、delete運算符以及()運算符等。對象包含屬性和方法,點號運算符用來訪問對象的屬性和方法。其用法是將對象名稱與對象的屬性(或方法)用點號隔開,例如:

var myColor=document.bgColor;

window.alert(msg);

當然,也可使用雙引號“[]”來訪問對象的屬性,改寫上述

語句:var myColor=document[" bgColor "];

new 運算符用來創建新的對象,例如創建一個新的數組對象,可以寫成:var exam = new Array (43,76,34 89,90);

new 運算符可以創建程序員自定義的對象,以可以創建JavaScript 內建對象的實例。

8.typeof 運算符:typeof 運算符用于表明操作數的數據類型,返回數值類型為一個字符串。在JavaScript腳本語言中,其使用格式如下:

var myString=typeof(data);

六:javascript的循環控制結構:由于在javascript中if、if……else、while、do……while等語句與java中基本相識,所以在此就不在贅述

七:函數

JavaScript 腳本語言允許開發者通過編寫函數的方式組合一些可重復使用的腳本代碼塊,增加了腳本代碼的結構化和模塊化。函數是通過參數接口進行數據傳遞,以實現特定的功能。

1 函數的基本組成

函數由函數定義和函數調用兩部分組成,應首先定義函數,然后再進行調用,以養成良好的編程習慣。函數的定義應使用關鍵字 function

,其語法規則如下:

function funcName ([parameters])

{statements;

[return 表達式;]}

除了自定義函數外,JavaScript 腳本語言提供大量的內建函數,無需開發者定義即可直接調用,例如window 對象的alert()方法即為JavaScript 腳本語言支持的內建函數。函數定義過程結束后,可在文檔中任意位置調用該函數。引用目標函數時,只需在函數名后加上小括號即可。若目標函數需引入參數,則需在小括號內添加傳遞參數。如果函數有返回值,可將最終結果賦值給一個自定義的變量并用關鍵字return 返回。

2 全局函數與局部函數:JavaScript 腳本語言提供了很多全局(內建)函數,在腳本編程過程中可直接調用,在此介紹四種簡單的全局函數:parseInt()、parseFloat()、escape()和unescape()。

parseInt()函數的作用是將字符串轉換為整數,parseFloat()函數的作用是將字符串轉換為浮點數;escape()函數的作用是將一些特殊字符轉換成ASCII 碼,而unescape()函數的作用是將ASCII 碼轉換成字符。

3.作為對象的函數:JavaScript 腳本語言中所有的數據類型、數組等均可作為對象對待,函數也不例外。可以使用new 操作符和Function 對象的構造函數Function()來生成指定規則的函數,其基本語

法如下:

var funcName = new Function (arguments,statements;);

值得注意的是,上述的構造函數Function()首字母必須為大寫,同時函數的參數列表與操作代碼之間使用逗號隔開。

注意:在定義函數對象時,參數列表可以為空,也可有一個或多個參數,使用變量引用該函數時,應將函數執行所需要的參數傳遞給函數體。作為對象的函數最重要的性質即為它可以創建靜態變量,給函數增加實例屬性,使得函數在被調用之間也能發揮作用。作為對象的函數使用靜態變量后,可以用來保存其運行的環境參數如中間值等數據。

4.函數應用注意事項

最后介紹一下在使用函數過程中應特別予以注意的幾個問題,以幫助讀者更好、更準確確地使用函數,并養成良好的編程習慣。具體表現在如下幾點:

定義函數的位置:如果函數代碼較為復雜,函數之間相互調用較多,應將所有函數的定義部分放在HTML 文檔的<head>和</head>標記對之間,既可保證所有的函數在調用之前均已定義,又可使開發者后期的維護工作更為簡便;

??? 函數的命名:函數的命名原則與變量的命名原則相同,但盡量不要將函數和變量取同一個名字。如因實際情況需要將函數和變量定義相近的名字,也應給函數加上可以清楚辨認的字符(如前綴func 等)以示區別;

??? 函數返回值:在函數定義代碼結束時,應使用return 語句返回,即使函數不需要返回任何值;

??? 變量的作用域:區分函數中使用的變量是全局變量還是局部變量,避免調用過程中出現難以檢查的錯誤;

??? 函數注釋:在編寫腳本代碼時,應在適當的地方給代碼的特定行添加注釋語句,例如將函數的參數數量、數據類型、返回值、功能等注釋清楚,既方便開發者對程序的后期維護,也方便其他人閱讀和使用該函數,便于模塊化編程;

??? 函數參數傳遞:由于 JavaScript 是弱類型語言,使用變量時并不檢查其數據類型,導致一個潛在的威脅,即開發者調用函數時,傳遞給函數的參數數量或數據類型不滿足要求而導致錯誤的出現。在函數調用時,應仔細檢查傳遞給目標函數的參數變量的數量和數據類型。

其中第五點尤為值得特別關注,因由其導致的錯誤非常難于檢測。

作者:csh624366188 發表于2012-4-10 11:38:52 原文鏈接
閱讀:690 評論:4 查看評論