3 回答

TA貢獻376條經驗 獲得超318個贊
在 javascript 中所有表達式都有返回值(如果沒有返回值就是undefined),這個返回值就可以繼續作為表達式的一部分。大多數語言表達式的定義基本分為(忽略優先級):運算符 表達式(一元,比如!true) 表達式 運算符 表達式(二元,比如1+2) 表達式1 ? 表達式2 : 表達式3(三元,a>b?a:b) 左括號 表達式 右括號(括號 (1+2)) 表達式(參數列表)(函數調用)等。 可見這是一種遞歸的定義,所以又規定字面量(就是1,2,3,“abc”),this等是表達式。那么什么是表達式已經很明顯了。
上面這段話“語句”的意思是指不是表達式的語句。在 javascript 里面滿足這個條件的就函數聲明、變量聲明(var a=10是聲明和賦值)、for語句、if語句、while語句、switch語句、return、try catch。
但是 javascript 還有一種函數表達式,它的形式跟函數聲明一模一樣。如果寫 function fn() { return 0;} 是函數聲明而寫var a = function fn(){ return 0;} 等號后面的就是函數表達式。

TA貢獻15條經驗 獲得超9個贊
js中的表達式就是一個表達式會產生一個值,它可以放在任何需要一個值的地方,比如,作為一個函數調用的參數.下面的每行代碼都是一個表達式:var x=5;y=6;z=x+y;
語句就是if語句,for循環語句等,用來執行一種行為;
語句中可以有表達式,
添加回答
舉報