网站首页 > 技术文章 正文
本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注!
作者|慕课网精英讲师 然冬
表示式亦称表达式、运算式或数学表达式,在数学领域中是一些符号依据上下文的规则,有限而定义良好的组合。数学符号可用于标定数字(常量)、变量、操作、函数、括号、标点符号和分组,帮助确定操作顺序以及有其它考量的逻辑语法。——Wikipedia
表达式可以简单理解成一种式子,如 2 + 3 就是一种表达式,通常会叫做算术表达式。
通常表达式用来产生值,任何需要用到值的地方都可以放置表达式。
一个表达式由操作数与操作符组成,操作数可以由变量、常量或者另一个表达式表示。
如:
var a = 1;
var b = 2;
var c = 3;
var res = ((a + b) - (c * sqrt(9)));
代码块12345
其中第五行等号右边就是一个算术表达式,其由多个算术表达式组成。
除了函数调用的括号,剩下所有括号包裹的都是一个表达式。(注意:表达式并不是一定要括号包括,这里是为了方便划分)
在等号右侧表达式计算完后,得到一个值,最后会赋值给变量 res,这就是一个赋值表达式。
可以见到表达式无处不在。
注意:有些文献中会把调用函数描述为一个函数表达式。但通常在JavaScript中会把一种创建函数的方式描述为函数表达式,具体可以查阅函数章节。
1. 为什么要理解表达式
表达式是一个基础而又重要的概念,同时又比较抽象,初学者不好理解。
我个人理解的表达式,就是一种具有规则、可以得到一个结果的式子。
理解表达式主要是为学习铺路,大量文献中都会用到表达式这个关键词来描述内容。
排开这个原因,还有许多表达式是需要单独学习的,如Cron表达式,正则表达式,对表达式的含义有所理解,就很容易接受类似的新名词,理解他们为什么是表达式。
2. JavaScript 表达式
JavaScript 中的表达式非常细,这些表达式可以组成一行行语句,这里例举部分,方便读者结合理解。
2.1 原始表达式
变量、关键字、字面量都属于原始表达式。
var num = 1;
num; // 变量 原始表达式
'123'; // 字符串字面量 原始表达式
this; // 关键字 原始表达式
代码块12345
这些原始表达式在程序运行过程中是不会报错的,这也是最简单的表达式。
2.2 复合表达式
原始表达式加上运算符就形成了复合表达式。
10 * 10; // 两个数字字面量 使用乘号连接
代码块1
2.3 定义表达式
定义表达式及定义一个变量。
var person;
var func;
代码块123
2.4 初始化表达式
初始化表达式与定义表达式不同,初始化表达式在定义变量的同时对变量做了初始化。
var number = 10000;
var fn = function() {};
代码块12
除此之外还有非常非常多的表达式,通过这些简单的表达式,我相信读者对概念已经有了一定的理解。
3. 小结
表达式的概念很广泛,特别在数学领域更是常见。
在 JavaScript 中,基本所有的语句都能分解成表达式。
理解表达式的概念,可以更好的与他人交流,更容易的参阅文献,更快速的理解相关内容。
欢迎关注「慕课网」,发现更多IT圈优质内容,分享干货知识,帮助你成为更好的程序员!
猜你喜欢
- 2024-10-16 JS中(a==1 && a==2 && a==3)可以在JavaScript中计算为“true”吗?
- 2024-10-16 JavaScript 的这个难点,毁掉了多少程序员
- 2024-10-16 前端开发之彻底搞懂this指向(前端this指向问题)
- 2024-10-16 JavaScript中的变量声明和作用域(一)
- 2024-10-16 Top 26 JavaScript面试问题和答案
- 2024-10-16 JS 经典实例知识点整理汇总【实践】
- 2024-10-16 苦恼于JavaScript中的reduce函数?五分钟讲透彻
- 2024-10-16 前端基础:JavaScript(前端基础题)
- 2024-10-16 一句话彻底理解JS中的回调(Callback)函数
- 2024-10-16 面试中被问到最多的 19 个 JavaScript 问题
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)