1、javascript文法
a、javascript的變數名、函數、運算子是區分大小寫
b、變數是弱類型的,ECMAScript不像Java,C++。ECMAScript中的變數無特定的類型。定義變數用var。
c、每行結尾的“;”可以有也可以沒有
d、javascript注釋是"/*js content */"
2、javascript變數
a、javascipt中定義變數是:var test="hello js";(其中var 是 variable的縮寫。)並且給test變數初始值為“hello js”
b、ECMAjavascipt中定義變數可以不初始化。如:var test;
c、javascipt的變數是弱類型的,所以變數可以儲存不同類型的值。如:var test="hello js"; test=123;這是可以的
d、變數名規則:第一個字元必須是字母、底線、或者是美無符號($)
e、變數名的命名規則
》Camel標記法--首字母小寫,接下來的單詞都以大寫字母開頭
例:var myTestValue; var myResult;
》Pascal標記法--首字母是大寫的,接下來的單詞都以大寫字母開頭
例:var MyTestValue; var MyResult;
》匈牙利標記法--在以Pascal標記法的基礎上,在變數前面添加一個小寫字母說明該變數的類型。
例:var iMyTestValue =55; var sMyResult="Hello js";
3、原始值,引用值
a、原始值
primitive value 是儲存在棧(Stack)中的簡單資料區段,也就是說它們的值是直接儲存在變數訪問的位置。
b、引用值
reference value 是儲存在堆(herp)中的對象,也就是說儲存變數處的值是一個指標(point),指向對象的記憶體處
ECMAScript原始類型有:Undefined、Null、Boolean和String.
4、幾個重要的原始類型
a、Undefined 類型
此類型只有一個值即:undefined。當聲明變數未初始化時,該變數的值為undefined。
即:var test;alert(test);則輸出undefined。
注意:值undefined並不同於未定義的值。但是:typeof運算子並不真正的區分這兩種值請關注以下代碼:
var oTemp;
alert(typeof oTemp); 輸出 “undefined”;
alert(typeof oTemp2); /*沒有任何地方定義oTemp2*/ 輸出"undefined";
但是在沒有定義變數的情況下卻不可以這樣使用:alert(oTemp2 == undefined);//這會產生一個錯誤:變數未定義
當函數沒有明確傳回值,那麼這個函數的傳回值預設為:undefined。
b、Null類型
Null類型也只有一個專用值null,值undefined其實是從null派生來的,因此:
alert(null == undefined); //輸出true
此二值雖然相等,但是其含義並不相同。undefined是聲明了變數但未對其初始化時賦予該變數的值,null則用於表示
尚未存豐的對象。如果函數的傳回值為對象,那麼當找不著對象時則返回的通常是null。
c、Boolean類型
Boolean類型有兩個值true/false。
在類型轉換過程中:Null 字元串 == false;數字 0==false ;非零數字和非Null 字元串== true;
預設情況下:"null==true/false"均返回false,"undefined==true/false"也返回false
var oFalseObject = new Boolean(false);
var result = oFalseObject && true;//此處最終結果是 true,因為此處and 操作會自動將oFalseObject對象轉換
為true,而不是取此對象的值。所以此處傳回值是true;
強型別轉換時:var b = new Boolean(null); 則b的最終結果是false; var b = new Boolean(undefined);亦然
5、函數
函數是一組隨時隨地可以啟動並執行語句,由關鍵字function、一組參數、以及置於括弧內的程式碼群組成的。
如果函數未使用return 語句或者使用了空的return;語句那麼此函數的傳回值是undefined.
在ECMAScript中函數是不可以重載的,如果在同一地區有兩個函數使用了相同的名稱,不會引發錯誤,但是當代碼執行的時候真正使用的是第二個函數。
arguments對象:代函數代碼中,可以使用特殊對象,開發人員不用明確指出此參數名,就能訪問他們。arguments便是整個函數的所有參數列表數組。