表達式的概念:將同類型的數據(如常量、變量、函數等),用運算符號按必定的規則連起來的、有意義的式子稱爲表達式react
1、原始表達式正則表達式
最簡單的表達式,是表達式的最小單位。JavaScript中的原始表達式包含常量或直接量、關鍵字和變量express
1.直接量:數組
1.23 //數字直接量ide
「hello」 //字符串直接量函數
/pattern/ //正則表達式直接量this
2.關鍵字:對象
true //返回一個布爾值:真ip
false //返回一個布爾值:假字符串
null //返回一個值:空
this //返回「當前」對象
3.變量:
i //返回變量i的值
sum //返回sum值
undefined //undefined是全局變量,和null不一樣,他不是一個關鍵字
2、對象和數組的初始化表達式
對象和數組初始化表達式其實是一個新建立的對象和數組。這些初始化表達式有時稱做「對象直接量」和「數組直接量」
1.數組初始化表達式是經過一對方括號和其內由逗號隔開的列表構成的,初始化的結果是一個新建立的數組。數組的元素是逗號分隔的表達式的值
[] //一個空數組
[1,5+6] //擁有兩個元素的數組
這些表達式也能夠嵌套 好比:var arr = [[1,2,3],[4,5,6],[7,8,9]]
數組直接量中的列表逗號之間的元素能夠省略,這是省略的空位會填充undefined
2.對象初始化表達式和數組初始化表達式相似,知識方括號被花括號代替,而且每一個子表達式都包含一個屬性名和一個冒號做爲前綴
var p = {x:2,y:-1.2} // 一個擁有兩個屬性成員的對象
var q = {} //一個空對象
對象直接量也能夠嵌套 如:var reactangle = {upperLeft:{x:2,y:2},lowerRight:{x:4,y:5}}
3、函數定義表達式
函數定義表達式定義一個JavaScript函數。表達式的值是這個新定義的函數。從某種意義上講,函數定義表達式可稱爲「函數直接量」,畢竟對象初始化表達式成爲「對象直接量」。一個典型的函數定義表達式包含關鍵字function,跟隨其後的是一對圓括號,括號內是一個以逗號分割的列表,列表含有0個或多個標識符(參數名),而後再跟隨一個由花括號包裹的JavaScript代碼段(函數體)
如: var square = function(x) {return x*x} //這個函數返回傳入參數值得平方
函數定義表達式能夠包含函數的名字。函數也能夠經過函數語句來定義,而不是函數表達式。
4、屬性訪問表達式
屬性訪問表達式運算獲得一個對象屬性或一個數組元素的值。JavaScript爲屬性訪問定義兩種語法:
expression.identifier
expression[expression]
第一種寫法是一個表達式後跟隨一個句點和標識符。表達式指定對象,標識符指定須要訪問的屬性名稱
第二種寫法是使用方括號,方括號是另一個表達式(這種方法適用於對象和數組)
5、調用表達式
JavaScript中的調用表達式是一種調用(或者執行)函數或方法的語法表示。它以一個函數表達式開始,這個函數表達式只帶了要調用的函數。函數表達式後跟隨一對圓括號,括號內飾一個以逗號隔開的參數列表,參數能夠有0個也能夠有多個,列如:
f(0) // f 是一個函數表達式,0是一個參數
Math.max(x,y,z) // Match.max是一個函數, x,y,z是參數
a.sort() // a.sort是一個函數,沒有參數
當對調用表達式進行求值的時候,首先計算函數表達式,而後計算參數表達式,獲得一組參數值。若是函數表達式的值不是一個可調用的對象,則拋出一個類型錯誤異常,而後實參的值一次賦值給形參,這些形參是定義函數式指定的,接下來開始執行函數體,若是函數使用return語句給出一個返回值,那麼這個返回值就是整個調用表達式的值。不然,調用表達式的只就是undefined。函數調用---包括形參表達式的個數和函數定義中實參的個數不匹配的時候運行
6、對象建立表達式
對象建立表達式建立一個對象並調用一個函數(這個函數稱作構造函數)初始化新對象的屬性。對象建立表達式和函數調用表達式相似,只是對象建立表達式以前多了一個關鍵字new:
new Object()
new Potint(2,3)
未完待續......