JavaScript 表达式

表示式亦称表达式、运算式或数学表达式,在数学领域中是一些符号依据上下文的规则,有限而定义良好的组合。数学符号可用于标定数字(常量)、变量、操作、函数、括号、标点符号和分组,帮助确定操作顺序以及有其它考量的逻辑语法。——Wikipedia

表达式可以简单理解成一种式子,如 2 + 3 就是一种表达式,通常会叫做算术表达式。

通常表达式用来产生值,任何需要用到值的地方都可以放置表达式。

一个表达式由操作数与操作符组成,操作数可以由变量、常量或者另一个表达式表示。

如:

var a = 1;
var b = 2;
var c = 3;

var res = ((a + b) - (c * sqrt(9)));

其中第五行等号右边就是一个算术表达式,其由多个算术表达式组成。

除了函数调用的括号,剩下所有括号包裹的都是一个表达式。(注意:表达式并不是一定要括号包括,这里是为了方便划分)

在等号右侧表达式计算完后,得到一个值,最后会赋值给变量 res,这就是一个赋值表达式。

可以见到表达式无处不在。

注意:有些文献中会把调用函数描述为一个函数表达式。但通常在JavaScript中会把一种创建函数的方式描述为函数表达式,具体可以查阅函数章节。

1. 为什么要理解表达式

表达式是一个基础而又重要的概念,同时又比较抽象,初学者不好理解。

我个人理解的表达式,就是一种具有规则、可以得到一个结果的式子。

理解表达式主要是为学习铺路,大量文献中都会用到表达式这个关键词来描述内容。

排开这个原因,还有许多表达式是需要单独学习的,如Cron表达式正则表达式,对表达式的含义有所理解,就很容易接受类似的新名词,理解他们为什么是表达式。

2. JavaScript 表达式

JavaScript 中的表达式非常细,这些表达式可以组成一行行语句,这里例举部分,方便读者结合理解。

2.1 原始表达式

变量、关键字、字面量都属于原始表达式。

var num = 1;

num; // 变量 原始表达式
'123'; // 字符串字面量 原始表达式
this; // 关键字 原始表达式

这些原始表达式在程序运行过程中是不会报错的,这也是最简单的表达式。

2.2 复合表达式

原始表达式加上运算符就形成了复合表达式。

10 * 10; // 两个数字字面量 使用乘号连接

2.3 定义表达式

定义表达式及定义一个变量。

var person;

var func;

2.4 初始化表达式

初始化表达与定义表达式不同,初始化表达式在定义变量的同时对变量做了初始化。

var number = 10000;
var fn = function() {};

除此之外还有非常非常多的表达式,通过这些简单的表达式,我相信读者对概念已经有了一定的理解。

3. 小结

表达式的概念很广泛,特别在数学领域更是常见。

在 JavaScript 中,基本所有的语句都能分解成表达式。

理解表达式的概念,可以更好的与他人交流,更容易的参阅文献,更快速的理解相关内容。