章节索引 :

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 中,基本所有的语句都能分解成表达式。

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

前置知识
什么是JavaScript 开发与学习环境准备 调试方案
基础
JavaScript 变量 JavaScript 数据类型 JavaScript if 语句 JavaScript for 语句 JavaScript 算数运算符 JavaScript 比较运算符 JavaScript 逻辑运算符 JavaScript 表达式 JavaScript 函数 JavaScript 对象 JavaScript 字符串 JavaScript 数字 JavaScript 数组 JavaScript switch 语句 JavaScript while 语句 JavaScript break与continue JavaScript with document.cookie
内置对象
JavaScript Function JavaScript Math JavaScript Date JavaScript RegExp JavaScript JSON
JavaScript 与 DOM
什么是DOM DOM和JavaScript的关系 获取和操作 DOM 节点 JavaScript DOM与事件 JavaScript DOM 事件绑定 JavaScript DOM 事件对象 JavaScript DOM 事件流 JavaScript DOM 事件优化 JavaScript DOM 自定义事件
表单处理
使用 JavaScript 校验表单
BOM
BOM window 对象 常用的 BOM 相关对象 BOM 常用属性和方法
AJAX
JavaScript AJAX
进阶知识
JavaScript 异常处理 JavaScript 三元运算符 JavaScript 逗号操作符 JavaScript void JavaScript typeof JavaScript delete JavaScript debugger JavaScript getter &setter JavaScript 原型 JavaScript new操作符和构造函数 JavaScript instanceof JavaScript this JavaScript 严格模式 JavaScript 作用域 JavaScript 闭包 JavaScript 变量提升 JavaScript 对象包装器
常用库
jQuery Lodash moment.js swiper
进阶指南
ECMAScript6 Node.js Babel CSS 预处理器 代码规范 TypeScript Web Components 小程序 Vue / React / Angular JavaScript 关键字
常见疑点与误区
分号问题 对象属性访问问题 this 使用问题 浮点数精度问题 独一无二的 NaN 避免全局污染 控制台观察对象问题 根据环境选择语言特性
扩展
相关资源