詳細介紹ECMAScript基礎
網上有無數的文章說明如何用JavaScript實現“傻瓜式的Web小把戲”,它們包括如何彈出用戶提示信息、交換圖片以及創建簡單的游戲等。雖然這些功能給Web站點增加了趣味性,不過只是復制粘貼其代碼,并不能讓你理解它們為什么能起作用以及如何起作用。本文章詳細地講解了JavaScript的核心ECMAScript的基礎知識。
一、 語法
ECMAScript的基礎概念如下:
- 區分大小寫。
- 變量是弱類型的,可以隨時改變變量所存數據的類型。
- 每行的結尾的分號可有可無。
- 注釋與Java、C和PHP語言的注釋相同,單選注釋以雙斜線(//)開頭。多行注釋以單斜線和星號(/*)開頭,以星號加單斜線結尾(*/)。
- 括號表明代碼塊,語句被封閉在左括號({)和右括號(})之間。
二、變量
ECMAScript中的變量是用var運算符加變量名定義的。變量名需要遵守兩條簡單的規劃:
1、每個字符必須是字母、下劃線(_)或美元符號($)。
2、余下的字符可下劃線、美元符號或者任何字母或者數字字符。
變量還應遵守以下三種著名的命名規劃:
1、 Camel標記法——首字母是小寫,接下來的單詞都以大寫字母開頭。
如:
- Var myTestValue=0;
2、 Pascal標記法——首字母是大寫的,接下來的單詞都以大寫字母開關。
如:
- var MyTestValue=0;
3、 匈牙利類型標記法——在以Pascal標記法命名的變量前附加一個小寫字母,該變量的類型。以下是各字母前綴代表的類型:a(數組),b(布爾型),f(浮點型),fn(函數),i(整型),o(對象),re(正則表達式),s(字符串),v(變型[可以是任何類型])。如:
- var iMyTestValue=0;
三、關鍵字
ECMA-262定義了ECMAScript支持的一套關鍵字是保留的,不能用作變量名或者函數名。
下面是ECMAScript關鍵字的完整列表:
- Break else new var case finally return void catch for
- Switch while continue function this with default if throw
- delete in try do instanceof typeof
四、保留字
ECMA-262定義了ECMAScript定義的一套保留字是某種意義上的為將來的關鍵字而保留的單詞,其不能用作變量名或者函數名。
下面是ECMAScript保留字的完整列表:
- Abstract enum int short Boolean export interface static byte extends long super
- Char final native synchronized class float
- package thorws const goto private transient
- debugger implements protected volatile double import public
五、原始值和引用值
原始值是存儲在棧中的簡單數據段,也就是說,它們的值直接存儲在變量訪問的位置。引用值是存儲在堆中的對象,也就是說,存儲在變量處的值是一個指針,指向存儲對象的內存處。
六、原始類型
ECMAScript有5種原始類型,即Undefined,Null,Boolean,Number和String。
typeof運算符:只有有個參數,即要檢查的變量或值。
如:
- var sTemp=”test string”;
- alert(typeof sTemp) //outputs “string”。
1、 Undefined類型只有一個值,即undefined,當聲明的變量未初始化時,該變量的默認值是undefined。當函數無明確返回值是,返回的也是值undefined。
2、 Null類型表示尚未存在的對象,只有一個專用值null,值undefined實際上是從值null派生來的,因此ECMAScript把它們定義為想等的。
- alert (null == undefined); //outputs “true”。
3、 Boolean類型只有兩個值true和false。
4、 Nunmber類型既可表示32位整數,也可表示64位浮點數。特殊值NaN,表示非數。
5、 String類型沒有固定大小,可用字符串存儲0或更多的Unicode字符,由16位整數表示。
七、轉換
1、轉換成字符串
Boolean值、數字和字符串的原始值是偽對象,他們有屬性和方法,都有toString()方法
2、轉換成數字
ECMAScript提供了兩種把非常的原始值轉換成數字的方法,即parseInt()和parseFloat (),只有對String類型調用這些方法,才能正確運行。
3、強制類型轉換
- Boolean(Value)——把給定的值轉換成Boolean型。
- Number(Value)——把給定的值轉換成數字。
- String(Value)——把給定的值轉換成字符串。
#p#
八、引用類型
引用類型通常叫做類,遇到引用值時,所處理的就是對象。對象有由new運算符加上要實例化的類的名字創建的。
1、 Object類:ECMAScript中的所有類都是由這個類繼承來,Object類中的所有屬性的方法都會出現在其他類中。
2、 Boolean類:Boolean原始類型的引用類型。
3、 Number類:Number原始類型的引用類型。
4、 String類:String原始類型的對象表示法。
- charCodeAt()方法返回的是侯島指定位置處的字符的字符串。
- contact()方法用于把一個或多個字符串連接到String對象的原始值上。
- indexOf()方法是從字符串的開關開始檢索子串,返回指定的字串在另一個字符串的位置。
- lastIndexOf()方法是從字符串的結尾開始檢索子串,返回指定的字串在另一個字符串的位置。
- localeCompare()對字符串排序,只有一個參數,即要進行比較的字符串。
- slice()返回要處理的字符串的子路,接受一個或者兩個參數,一個是子串的起始位置,另一個是獲取子串的終止前的位置。對于負參數,用字符串的長度加上參數。
- substring()返回要處理的字符串的子路,接受一個或者兩個參數,一個是子串的起始位置,另一個是獲取子串的終止前的位置。對于負參數,其將其作為處理。 它總是把較小的數位作為起始位,較大的數字作為終止位。
- instanceof運算符:用于識別正在處理的對象的類型。
九、運算符
1、一元運算符
delete運算符刪除對以前定義的對象屬性或方法的引用;Void運算符對任何值返回undefine;前(后)增量/前(后)減量運算符(++、–);一元加(減)法。
2、位運算符:NOT(~),AND(&),OR(|),左移(<<),右移(>>),無符號右移運算(>>>)。
3、Boolean運算符:邏輯NOT(!),邏輯AND(&&),邏輯OR(||)。
4、乘性運算符:乘(*),除(/),取模(%)。
5、加性運算符:+,-。
6、關系運算符:小于(<),大于(>),小于等于(<=)和大于等于(>=)。
7、等性運算符:雙等號(==),不等于(!=),全等號(====),非全等號(!==)。
8、條件運算符:?:
9、賦值運算符:=
十、語句
1、if語句
if(條件) 語句1 else 語句2
2、迭代語句
do{語句} while(條件),while(條件)語句,for(初始值;條件;遞增量)語句,for(屬性 in 表式) 語句
3、有標簽的語句:標簽:語句
4、 break語句:立即退出循環,阻止再次反復執行任何代碼。Continue語句退出當前循環。
5、 with語句:用于設置代碼在特定對象中的作用域,with(表達式)語句。
6、 switch語句:
- switch(表達式){
- case 值:語句
- break;
- case 值:語句
- break;
- case 值:語句
- break;
- ……
- Default:語句
- }
十一、函數
函數是一組可以隨時隨地運行的語句,函數是由關鍵字function、函數名加一組參數以及置于括號中的要執行的代碼聲明的。如果函數無明確的返回值,或調用了沒有參數的return語句,那么它真正返回的值是undefined。ECMAScript中的函數不能重載;在函數中可以使用特殊對象arguments。
1、 Function類
- var 函數=new Function(參數1,參數2,……參數N,函數體)
2、閉包:能使用函數外定義的變量的函數。
希望對你有幫助。
本文鏈接地址: http://www.yiiyaa.net/669
【編輯推薦】