第二章 ECMAScript基礎 一、ECMAScript的基本概念如下: 1)區(qū)分大小寫 2)變量是弱類型的,。只用var運算符 3)每行結尾的分號可有可無 4)注釋與Java,、c語言注釋相同。/.../ 或/*...*/ 5)括號表明代碼塊,。如:if(test =='red'){test='blue'} 二,、變量 1)變量無需明確的聲明類型。var test="hi"; 2)可以一個var語句定義兩個或多個變量,且兩個變量不必具有相同的類型 如: var test="hi",age=25; 3)變量并不一定要初始化(他們是在幕后初始化的) 如:var test; 4)變量可以存放不同類型的值,。例如:我們可以把變量初始化為字符串類型的值,,之后把它設置為數字值。例如: var test="hi"; alert(test); test=55; alert(test); 注意:好的編碼習慣是始終存放相同類型的值 A.變量名需要遵守的兩條簡單的規(guī)則: a.第一個字符必須是字母,、下劃線(_)或美元符號($) b.余下的字符可以使字母,、數字、下劃線,、美元符號 B.變量命名規(guī)則: a.Camel標記法——首字母是小寫的,接下來的單詞都以大寫字母開頭. 例如:var myTestValue=0 b.Pascal標記法——首字母大寫,,接下來的單詞都以大寫字母開頭。 例如:var MyTestValue=100 c.匈牙利類型標記法——在一Pascal標記法命名的變量前附加一個小寫字母(或小寫字母序列),說明該變量的類型,。例如:i表示整數,,s表示字符串。 例如:var iMyTestValue=-100; 具體表示如下: a:表示數組, b:布爾型 f:浮點型 fn:函數 i:整型 o:對象 re:正則表達式 s:字符串 v:變量 5)使用變量之前不必聲明 例如:var test='hello'; test2=test+'world'; alert(test2); 注意:最好的習慣還是使用之前聲明變量 三,、原始值和引用值 1)原始值:是存儲在棧中的簡單數據段,,也就是說,他們的值直接存儲在變量訪問的位置,。 2)引用值:是存儲在堆中的對象,,也就是說,存儲在變量處的值是一個指針,,指向存儲對象的內存處,。 在變量賦值時,ECMAScript的解釋程序必須判斷該值是原始類型的,,還是引用類型的,。要實現(xiàn)這一點,解釋程序則需艙室判斷該值是否為ECMAScript的原始類型之一,,即Undefined,Null,Boolean和String型.由于這些原始類型占據的空間是固定的,所以可將它們存儲在較小的內存區(qū)域——棧中,,這樣存儲便于迅速查詢變量的值。 注意:許多語言中,,字符串都被看做是引用類型,而非原始類型,因為字符串的長度是可變的.ECMAScript打破了這一傳統(tǒng). 如果一個值是引用類型的,那么它的存儲空間將從堆中分配.由于引用值的大小會變,所以不能把它放在棧中,否則會降低變量查詢的速度.相反,放在變量的??臻g的值是該對象存儲在堆中的地址.地址的大小是固定的,所以把它存儲在棧中對變量性能無任何負面影響. 四、原始類型 1)ECMAScript有5種原始類型:Undefined,,Null,,Boolean,Number,,String,。 2)ECMAScript提供了typeof運算符來判斷一個值是否在某種類型的范圍內??梢杂眠@種運算符判斷一個值是否表示一種原始類型,;如果他是原始類型,還尅判斷他表示那種原始類型,。 例如: var sTemp="test string"; alert(typeof sTemp);//outputs "string" alert(typeof 95);//outputs "number" A,、typeof運算符: 對變量或值調用typeof運算符將返回下列值之一: a."undefined",如果變量是Undefined型的. b."boolean":如果變量是Boolean型的 c."number":如果變量是Nunber型的 d."string":如果變量是String型的 e."object":如果變量是一種引用類型或Null類型的 B、Undefined類型 Undefined類型只有一個值,即undefined. a.當聲明的變量未初始化時,該變量的默認值是undefined. 如: var oTemp; alert(oTemp==undefined); 這段代碼顯示"true",說明這兩個值卻是相等,還可以用typeof運算符顯示該變量的值是undefined. 如: var oTemp; alert(typeof oTemp);//outputs "undefined" 注意:值undefined并不同于未定義的值,。但是,,typeof運算符并不真正區(qū)分這兩種值。如下所示: var oTemp; //var oTemp2; alert(typeof oTemp); //outputs "undefined" alert(typeof oTemp2); //outputs "undefined" 前面的代碼對兩個變量輸出的都是undefined,即使只有變量oTemp2是未被聲明過的.如果對oTemp2使用除typeof之外的其他運算符的話,會引起錯誤,因為其他運算符只能用于已聲明的變量上.例如,下面的代碼將引發(fā)錯誤: //var oTemp2; alert(oTemp2 == undefined); //causes error b.當函數無明確返回值時,返回的也是值undefined.如下所示: function testFunc(){ //leave the function blank } alert(testFunc() == undefined); //outputs "true"
|
|
來自: I_T_館 > 《javascript》