網上有無數的文章說明如何用JavaScript實現「傻瓜式的Web小把戲」,它們包括如何彈出用戶提示信息、交換圖片以及建立簡單的遊戲等。雖然這些功能給Web站點增長了趣味性,不過只是複製粘貼其代碼,並不能讓你理解它們爲何能起做用以及如何起做用。本文章詳細地講解了JavaScript的核心ECMAScript的基礎知識。正則表達式
1、 語法數組
ECMAScript的基礎概念以下:閉包
2、變量函數
ECMAScript中的變量是用var運算符加變量名定義的。變量名須要遵照兩條簡單的規劃:this
一、每一個字符必須是字母、下劃線(_)或美圓符號($)。spa
二、餘下的字符可下劃線、美圓符號或者任何字母或者數字字符。debug
變量還應遵照如下三種著名的命名規劃:指針
一、 Camel標記法——首字母是小寫,接下來的單詞都以大寫字母開頭。code
如:對象
- Var myTestValue=0;
二、 Pascal標記法——首字母是大寫的,接下來的單詞都以大寫字母開關。
如:
- var MyTestValue=0;
三、 匈牙利類型標記法——在以Pascal標記法命名的變量前附加一個小寫字母,該變量的類型。如下是各字母前綴表明的類型:a(數組),b(布爾型),f(浮點型),fn(函數),i(整型),o(對象),re(正則表達式),s(字符串),v(變型[能夠是任何類型])。如:
- var iMyTestValue=0;
3、關鍵字
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
4、保留字
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
5、原始值和引用值
原始值是存儲在棧中的簡單數據段,也就是說,它們的值直接存儲在變量訪問的位置。引用值是存儲在堆中的對象,也就是說,存儲在變量處的值是一個指針,指向存儲對象的內存處。
6、原始類型
ECMAScript有5種原始類型,即Undefined,Null,Boolean,Number和String。
typeof運算符:只有有個參數,即要檢查的變量或值。
如:
- var sTemp=」test string」;
- alert(typeof sTemp) //outputs 「string」。
一、 Undefined類型只有一個值,即undefined,當聲明的變量未初始化時,該變量的默認值是undefined。當函數無明確返回值是,返回的也是值undefined。
二、 Null類型表示還沒有存在的對象,只有一個專用值null,值undefined其實是從值null派生來的,所以ECMAScript把它們定義爲想等的。
- alert (null == undefined); //outputs 「true」。
三、 Boolean類型只有兩個值true和false。
四、 Nunmber類型既可表示32位整數,也可表示64位浮點數。特殊值NaN,表示非數。
五、 String類型沒有固定大小,可用字符串存儲0或更多的Unicode字符,由16位整數表示。
7、轉換
一、轉換成字符串
Boolean值、數字和字符串的原始值是僞對象,他們有屬性和方法,都有toString()方法
二、轉換成數字
ECMAScript提供了兩種把很是的原始值轉換成數字的方法,即parseInt()和parseFloat (),只有對String類型調用這些方法,才能正確運行。
三、強制類型轉換
8、引用類型
引用類型一般叫作類,遇到引用值時,所處理的就是對象。對象有由new運算符加上要實例化的類的名字建立的。
一、 Object類:ECMAScript中的全部類都是由這個類繼承來,Object類中的全部屬性的方法都會出如今其餘類中。
二、 Boolean類:Boolean原始類型的引用類型。
三、 Number類:Number原始類型的引用類型。
四、 String類:String原始類型的對象表示法。
9、運算符
一、一元運算符
delete運算符刪除對之前定義的對象屬性或方法的引用;Void運算符對任何值返回undefine;前(後)增量/前(後)減量運算符(++、–);一元加(減)法。
二、位運算符:NOT(~),AND(&),OR(|),左移(<<),右移(>>),無符號右移運算(>>>)。
三、Boolean運算符:邏輯NOT(!),邏輯AND(&&),邏輯OR(||)。
四、乘性運算符:乘(*),除(/),取模(%)。
五、加性運算符:+,-。
六、關係運算符:小於(<),大於(>),小於等於(<=)和大於等於(>=)。
七、等性運算符:雙等號(==),不等於(!=),全等號(====),非全等號(!==)。
八、條件運算符:?:
九、賦值運算符:=
10、語句
一、if語句
if(條件) 語句1 else 語句2
二、迭代語句
do{語句} while(條件),while(條件)語句,for(初始值;條件;遞增量)語句,for(屬性 in 表式) 語句
三、有標籤的語句:標籤:語句
四、 break語句:當即退出循環,阻止再次反覆執行任何代碼。Continue語句退出當前循環。
五、 with語句:用於設置代碼在特定對象中的做用域,with(表達式)語句。
六、 switch語句:
- switch(表達式){
- case 值:語句
- break;
- case 值:語句
- break;
- case 值:語句
- break;
- ……
- Default:語句
- }
11、函數
函數是一組能夠隨時隨地運行的語句,函數是由關鍵字function、函數名加一組參數以及置於括號中的要執行的代碼聲明的。若是函數無明確的返回值,或調用了沒有參數的return語句,那麼它真正返回的值是undefined。ECMAScript中的函數不能重載;在函數中可使用特殊對象arguments。
一、 Function類
- var 函數=new Function(參數1,參數2,……參數N,函數體)
二、閉包:能使用函數外定義的變量的函數。
但願對你有幫助。