JavaScript语法(三):什么是表达式语句?
winter
该思维导图由 AI 生成,仅供参考
你好,我是 winter。
不知道你有没有注意到,我们在语句部分,讲到了很多种语句类型,但是,其实最终产生执行效果的语句不多。
事实上,真正能干活的就只有表达式语句,其它语句的作用都是产生各种结构,来控制表达式语句执行,或者改变表达式语句的意义。
今天的课程,我们就深入到表达式语句中来学习一下。
什么是表达式语句
表达式语句实际上就是一个表达式,它是由运算符连接变量或者直接量构成的(关于直接量我们在下一节详细讲解)。
一般来说,我们的表达式语句要么是函数调用,要么是赋值,要么是自增、自减,否则表达式计算的结果没有任何意义。
但是从语法上,并没有这样的限制,任何合法的表达式都可以当做表达式语句使用。比如我们看下面的例子。
这句代码计算了 a 和 b 相加的值,但是不会显示出来,也不会产生任何执行效果(除非 a 和 b 是 getter),但是不妨碍它符合语法也能够被执行。
下面我们就一起来了解下都有哪些表达式,我们从粒度最小到粒度最大了解一下。
PrimaryExpression 主要表达式
首先我们来给你讲解一下表达式的原子项:Primary Expression。它是表达式的最小单位,它所涉及的语法结构也是优先级最高的。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
JavaScript语法(三):表达式语句概述 本文深入探讨了JavaScript中的表达式语句,强调了表达式语句是能够产生执行效果的关键部分。从最小单位的Primary Expression开始介绍,包括直接量、对象定义等形式。接着介绍了Member Expression,用于访问对象成员的表达式形式。New Expression则是Member Expression加上new的形式,用于创建新对象。Call Expression是Member Expression的变体,用于函数调用。左值表达式(LeftHandSideExpression)是New Expression和Call Expression的统称,可放置于赋值操作符左侧。赋值表达式(AssignmentExpression)包括基本的等号赋值和复合赋值形式,以及与运算符结合的使用。最后,介绍了Expression表达式,由逗号运算符连接的赋值表达式构成。整体而言,本文详细介绍了JavaScript中表达式语句的各种形式及其语法特点,为读者提供了全面的概览。 在本文中,读者将了解到JavaScript中表达式语句的重要性以及各种形式的具体细节。从最基本的Primary Expression到复杂的赋值表达式,本文逐一介绍了它们的特点和用法。通过本文的阅读,读者将对JavaScript中的表达式语句有更清晰的认识,为进一步的学习和应用打下坚实的基础。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《重学前端》,新⼈⾸单¥59
《重学前端》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(16)
- 最新
- 精选
- 奋逗的码农哥js中的运算符有很多,推荐这篇教程 http://www.w3school.com.cn/js/js_operators.asp
作者回复: 不要看这种垃圾教程,看MDN
2019-07-09613 - 木木f`a${b}c`; 没有明白这个是什么意思
作者回复: 写一个函数f试试就知道了。
2019-04-0439 - mingingคิดถึงwinter老师,模板字符串当做参数传入时不带括号的写法不是很懂: function f(a){console.log(a)} const b = 1 f`a${b}c` 打印出来是:["a", "c", raw: Array(2)]
作者回复: 就是把模板拆成了数组,把${}的执行结果也放进数组
2019-10-1741 - 炒饭@嗨海海 winter老师讲得是语言细节,这些应该都是基础知识,但实际上很多一线前端都忽略了这些。比起常见那些框架工具应用,这课在国内还是很难得的,特别还是winter老师开的,讲的透彻,感谢winter老师,让我受益匪浅2019-04-1516
- vsptwinter老师,问个问题,在react源码中经常看到如下写法,一直没太理解,请问这种写法有什么好处吗? ``` var validateFormat = function () {}; { validateFormat = function (format) { if (format === undefined) { throw new Error('invariant requires an error message argument'); } }; } ```2019-04-04114
- 桂马平时不确定优先级的一般都加括号2019-04-075
- 乃乎literal 翻译成字面量会不会更好,好像大多数翻译都是用的那个2019-04-233
- 木木f`a${b}c`;2019-04-041
- 小耿"不加 new 也可以构成 New Expression",请问这句咋理解?New Expression 不都需要加 new 吗?2023-03-21归属地:北京
- 你好,阳光winter老师,有个疑问,new expression属于左值表达式,为何new Object()={}会报错invalid assignment left-hand side?2021-09-113
收起评论