【學習筆記】JavaScript——變量、常量、保留字、運算符與表達式、語句


變量、常量、保留字

變量Variable:一種特殊的標識符(identifier)。存儲信息(值或表達式)的容器。

       【與常量Constant相比,變量存儲的數據,可根據程序需要而改變;JS中的變量為notype,及弱類型】

       1)命名規則:由Unicode字符串和數字組成。首字符為:字母、下划線、美元符號$。其后的還可用數字。

       2)變量生存期(有效范圍):全局(global)變量、本地(local)變量。【變量沒有語句塊限制】

              前者用於整個文檔中JS代碼運行結束止。后者用於函數及其嵌套的子函數中、但不能用於父級或其他函數。

常量Constant:不變的值。【IE不支持const】

       1) const  constantName  =  value1;

              常量名首字符為字母或下划線,其后可有數字。 value1為直接量或表達式。

       2)1個const關鍵字可定義1個或多個常量。

       3)內置常量:JS中Infinity表無窮大的數值,-indinity表無窮小。NaN表非數值。

保留字:JS中有特殊含義的標識符。不能用於變量命名。

       保留字大多數為關鍵字Keywords,還有一些為擴展准備而不建議使用的特性關鍵字(Future Keywords)

 

 

運算符與表達式

運算符Operator:操作變量或值。6-40種

       9個算術Arithmetic: + - * / 模% 遞增++ 遞減-- 正號+ 取反-

              【addition/subtraction/multiplication/division/modulus/increment/decrement/?/decrement

       1個字符串String:+

       3個邏輯Logical:邏輯與Logical AND && 邏輯或Logical OR || 邏輯非Logical NOT!

       8個比較Comparison:>   <    >=   <=   ==   !=   等同===   不等同!== 【比較運算符在兩操作數間比較,返回布爾值

              【greater than/less than/g t or q/l t or q/equal/not equal/strict equal/strict not equal

              【==比較時會隱式轉換,===比較時不允許轉換。

       7個逐位Bitwise:逐位與&   逐位或|   逐位非~   逐位異或Bitwise XOR^ 【2值相同返0,否則1

                                   Left Shift左移<<   帶符號右移>>   0補足右移>>>  

              【逐位運算符 將各進制的操作數轉換為32位的二進制數,並逐位/按位進行操作后返回十進制數。

              【逐位運算符又分為:逐位邏輯運算符、逐位位移運算符。

       12個賦值Assignment:①普通:= ②帶操作:+=   -=   *=    /=    %=    &=    ^=    |=    <<=    >>=   >>>=

 

特殊運算符:12種

       條件conditional:    boolCondition?value1:value2   (JS中唯一的三元運算符)

       逗號comma:(,)JS最簡單的運算符,用於分割2個操作數。

       delete:刪除成功返回true,否則false。

              【刪除變量:不能刪除變量中var定義的變量。刪除未定義變量返true。刪除后不能訪問。

              【刪除對象:不能刪除對象中var定義的對象。刪除未定義對象返true。刪除后不能訪問。

              【刪除對象屬性:刪除不存在屬性返true。返問已刪除/不存在對象屬性返undefined。

              【刪除數組元素:不管是否var定義都能刪除。刪后數組長度不變。刪后元素仍能訪問,值為undefined

       in:判斷某屬性/元素是否屬於某對象/數組。 propNameOrNumber  in  objectName

              【propNameOrNumber為屬性名時,是字符串或能轉為字符串的類型。

              【propNameOrNumber為數組的下標時,是數字型或能轉為數字型的類型。

       instanceof:判斷對象是否為某對象類型。  objectName  instanceof  objecrType

              【objectName為對象名。objectType為對象類型,如Date/Arrayr等。Object是所有對象的類型。

       new:一元。創建自定義/內置對象。如Array、Boolean、Function、Image、Option、RegExp等。

                     objectName = new objectType(param1  [,param2]  ….  [paramN] )

       this:可在一個方法中調用當前對象。this  propertyName

       typeof:一元。返回字符串 表示操作數類型。typeof operand、typeof (literal)  

              【對直接量:返回結果類似變量。

                            typeof([1,2,3])                                          返object

                            typeof({height:10,width:20})            返object

                            typeof(function(a) {return -a})        返function

              【對關鍵字:null返object。undefined返undefined。

              【對對象屬性:返回結果,與屬性值相關。typeof( location.host )返string。typeof( Math.PI )返nunber

※ 操作數為JS 核心對象(Array/Boolean/Date/Error/Function/Number/String/Object等),返回function

※ 操作數為BOM中的對象/方法(window/navigator/frames/location/history/document/screen),返回object

       void:一元。計算某表達式/執行某方法等,不會有返回值。常用於a鏈接,打開新窗口而原窗口不變。

       數組元素存取[ ]:二元。可讀寫數組元素值。get = array[ number ]     array[ number ] = set

                                          對象可看成一個數組:get = object[ propretyName ]  object[ propretyName ]=set

       函數調用( ):操作數有傳遞參數決定。用於調用函數/對象方法。

       對象存取 .:二元。可讀寫對象屬性。get = objecct . proprety;   object . proprety = set;

操作數Operant:運算符處理的數據。

       由操作數個數,運算符分一元Unary、二元Binary和三元Ternary。【在JS中只有條件運算符是三元運算符】

 

表達式Expression:可為直接量、變量、常量、也可以是(運算符、操作符和標點符號)組成的語句。

       【直接量:值(如:1233、“abc”、true、[1,2,5]、{width:100,height:200} ….)】最后1個為對象直接量

 

 

語句

5類:選擇語句、循環語句、跳轉語句、異常處理語句、其他語句。

語句塊:JS中的作用域是整個函數中,與大括號包圍的語句塊無關。

選擇語句:2種:   if  、 switch

       if語句、if…else語句、if…else if語句。可嵌套。

       switch語句:在執行多個分支中,優於if語句(if每個分支需檢測一次變量值)。

              ※ switch語句中的case語句,需要一個終止(否則繼續執行后面的case語句),如break。

循環語句:for  、 while  、 do…while  【JS中的循環語句不提供執行分支,而是反復執行

       逗號運算符與for語句結合:for(var x=0,y=3;x<y;x+=2,++y)

對象操作語句: for…in 、for each in

for…in:遍歷數組元素對象屬性。for( 變量 in 數組/對象 ) { … }

       (while和for…in的變量 在循環語句外 聲明)通過將所有 元素/屬性 反復賦值給 變量。

       注意:遍歷時,若對象存在方法,此語句會將方法賦值給變量。

         對象的大多數未定義的內置屬性及覆蓋內置屬性的方法,將不被遍歷。如String的length屬性和replace()方法

         再循環體中刪除的屬性,將不被遍歷。

 with語句:用於簡化引用代碼。

 

跳轉語句:label語句、break語句、continue語句。

       跳轉語句必須放在循環體中。故lable語句需放在循環語句之前才有作用。

       label語句語法:lableName:

       break語句語法:break;或break lable;不能跳轉到其他循環語句前的lable中。

       continue語句:只能跳出當前循環

 

異常處理語句:throw語句(拋出)、try…catch語句(捕獲)、finally語句。

       幾個概念:異常exception:表出錯的信息。拋出throw:表異常狀況的信息。捕捉catch:處理拋出的異常。

       異常類型:

JS

異常

Error:

普通異常。

EvalError:

使用eval()出錯。

RangeError:

數字超合法范圍。

ReferenceError:

讀取不存在變量。

SyntaxError:

語法錯誤。

TypeError:

類型錯誤。

URIError:

URI編碼或解碼出錯。

DOM異常

DOMException

DOM對象異常。

EventException

:事件異常。

RangeException

:范圍異常。

 

       throw語句:可拋出異常對像或其他類型對象。如throw new Error(“出錯了”);或throw -1;或tw“xx”;

       try...catch語句:try statement  catch(ex) statemrnt【變量ex為throw拋出的Error對象。

       finally語句:不能單獨執行,需與try語句合作。

 

其他語句:6種。空語句(排版/充當占位符)。注釋語句(//或/**/)。var語句(定義變量)。const語句(定義常量)。function語句(定義函數)。return語句(只用於函數體,返回一個值)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM