JavaScript 表達(dá)式
表示式亦稱表達(dá)式、運(yùn)算式或數(shù)學(xué)表達(dá)式,在數(shù)學(xué)領(lǐng)域中是一些符號(hào)依據(jù)上下文的規(guī)則,有限而定義良好的組合。數(shù)學(xué)符號(hào)可用于標(biāo)定數(shù)字(常量)、變量、操作、函數(shù)、括號(hào)、標(biāo)點(diǎn)符號(hào)和分組,幫助確定操作順序以及有其它考量的邏輯語法?!猈ikipedia
表達(dá)式可以簡(jiǎn)單理解成一種式子,如 2 + 3
就是一種表達(dá)式,通常會(huì)叫做算術(shù)表達(dá)式。
通常表達(dá)式用來產(chǎn)生值,任何需要用到值的地方都可以放置表達(dá)式。
一個(gè)表達(dá)式由操作數(shù)與操作符組成,操作數(shù)可以由變量、常量或者另一個(gè)表達(dá)式表示。
如:
var a = 1;
var b = 2;
var c = 3;
var res = ((a + b) - (c * sqrt(9)));
其中第五行等號(hào)右邊就是一個(gè)算術(shù)表達(dá)式,其由多個(gè)算術(shù)表達(dá)式組成。
除了函數(shù)調(diào)用的括號(hào),剩下所有括號(hào)包裹的都是一個(gè)表達(dá)式。(注意:表達(dá)式并不是一定要括號(hào)包括,這里是為了方便劃分)
在等號(hào)右側(cè)表達(dá)式計(jì)算完后,得到一個(gè)值,最后會(huì)賦值給變量 res
,這就是一個(gè)賦值表達(dá)式。
可以見到表達(dá)式無處不在。
注意:有些文獻(xiàn)中會(huì)把調(diào)用函數(shù)描述為一個(gè)函數(shù)表達(dá)式。但通常在JavaScript中會(huì)把一種創(chuàng)建函數(shù)的方式描述為函數(shù)表達(dá)式,具體可以查閱函數(shù)章節(jié)。
1. 為什么要理解表達(dá)式
表達(dá)式是一個(gè)基礎(chǔ)而又重要的概念,同時(shí)又比較抽象,初學(xué)者不好理解。
我個(gè)人理解的表達(dá)式,就是一種具有規(guī)則、可以得到一個(gè)結(jié)果的式子。
理解表達(dá)式主要是為學(xué)習(xí)鋪路,大量文獻(xiàn)中都會(huì)用到表達(dá)式
這個(gè)關(guān)鍵詞來描述內(nèi)容。
排開這個(gè)原因,還有許多表達(dá)式是需要單獨(dú)學(xué)習(xí)的,如Cron表達(dá)式
,正則表達(dá)式
,對(duì)表達(dá)式的含義有所理解,就很容易接受類似的新名詞,理解他們?yōu)槭裁词潜磉_(dá)式。
2. JavaScript 表達(dá)式
JavaScript 中的表達(dá)式非常細(xì),這些表達(dá)式可以組成一行行語句,這里例舉部分,方便讀者結(jié)合理解。
2.1 原始表達(dá)式
變量、關(guān)鍵字、字面量都屬于原始表達(dá)式。
var num = 1;
num; // 變量 原始表達(dá)式
'123'; // 字符串字面量 原始表達(dá)式
this; // 關(guān)鍵字 原始表達(dá)式
這些原始表達(dá)式在程序運(yùn)行過程中是不會(huì)報(bào)錯(cuò)的,這也是最簡(jiǎn)單的表達(dá)式。
2.2 復(fù)合表達(dá)式
原始表達(dá)式加上運(yùn)算符就形成了復(fù)合表達(dá)式。
10 * 10; // 兩個(gè)數(shù)字字面量 使用乘號(hào)連接
2.3 定義表達(dá)式
定義表達(dá)式及定義一個(gè)變量。
var person;
var func;
2.4 初始化表達(dá)式
初始化表達(dá)
式與定義表達(dá)式
不同,初始化表達(dá)式
在定義變量的同時(shí)對(duì)變量做了初始化。
var number = 10000;
var fn = function() {};
除此之外還有非常非常多的表達(dá)式,通過這些簡(jiǎn)單的表達(dá)式,我相信讀者對(duì)概念已經(jīng)有了一定的理解。
3. 小結(jié)
表達(dá)式的概念很廣泛,特別在數(shù)學(xué)領(lǐng)域更是常見。
在 JavaScript 中,基本所有的語句都能分解成表達(dá)式。
理解表達(dá)式的概念,可以更好的與他人交流,更容易的參閱文獻(xiàn),更快速的理解相關(guān)內(nèi)容。