《深入理解JavaScript》筆記
- 多行註釋 ,被/* */包裹的任意區域,它不能巢狀使用
function (a /* int */, b /* str */) {}
- 表示式 將會產生一個值,它可以寫在任何需要值的地方。
- 語句 表示了一種行為,如迴圈和if語句,一個程式基本上就是語句的序列。
凡是在JavaScript期望語句的地方都可以寫表示式,這樣的語句叫做表示式語句。反之則不然:不能在需要表示式的地方使用語句。
- 有兩種像語句的表示式型別,它們的語法型別是二義 的。
- 物件字面量(表示式)看上去像塊(語句):
{ foo: bar(3, 5) }
- 具名函式表示式看上去像是函式宣告(語句):
function foo() {}
為了避免二義性,在解析過程中,JavaScirpt不能使用物件字面和函式表示式作為語句,即表示式語句不能以花括號 和function關鍵字 內容開頭。
- eval 在語句的上下文中解析它的引數。如果希望eval返回一個物件,需要用小括號將物件字面兩括起來。
eval('{ x: 123 }') // output: 123 eval('({ x: 123 })') //output: { x: 123 }