3 回答

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

TA貢獻(xiàn)15條經(jīng)驗(yàn) 獲得超9個(gè)贊
js中的表達(dá)式就是一個(gè)表達(dá)式會(huì)產(chǎn)生一個(gè)值,它可以放在任何需要一個(gè)值的地方,比如,作為一個(gè)函數(shù)調(diào)用的參數(shù).下面的每行代碼都是一個(gè)表達(dá)式:var x=5;y=6;z=x+y;
語(yǔ)句就是if語(yǔ)句,for循環(huán)語(yǔ)句等,用來(lái)執(zhí)行一種行為;
語(yǔ)句中可以有表達(dá)式,
添加回答
舉報(bào)