重学前端
程劭非(winter)
前手机淘宝前端负责人
105348 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 57 讲
开篇词+学习路线+架构图 (3讲)
重学前端
15
15
1.0x
00:00/00:00
登录|注册

JavaScript语法(三):什么是表达式语句?

布尔值
null
数字
字符串
带参数列表的new运算
带函数的模板
super关键字
new.target
字符串属性访问
属性访问
标识符引用
this
正则表达式直接量
数组直接量
类直接量
函数直接量
对象直接量
直接量
表达式
赋值表达式
左值表达式
函数调用表达式
NEW表达式
成员表达式
主要表达式
表达式语句
JavaScript语法表达式语句

该思维导图由 AI 生成,仅供参考

你好,我是 winter。
不知道你有没有注意到,我们在语句部分,讲到了很多种语句类型,但是,其实最终产生执行效果的语句不多。
事实上,真正能干活的就只有表达式语句,其它语句的作用都是产生各种结构,来控制表达式语句执行,或者改变表达式语句的意义。
今天的课程,我们就深入到表达式语句中来学习一下。

什么是表达式语句

表达式语句实际上就是一个表达式,它是由运算符连接变量或者直接量构成的(关于直接量我们在下一节详细讲解)。
一般来说,我们的表达式语句要么是函数调用,要么是赋值,要么是自增、自减,否则表达式计算的结果没有任何意义。
但是从语法上,并没有这样的限制,任何合法的表达式都可以当做表达式语句使用。比如我们看下面的例子。
a + b;
这句代码计算了 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
立即购买
登录 后留言

全部留言(16)

  • 最新
  • 精选
  • 奋逗的码农哥
    js中的运算符有很多,推荐这篇教程 http://www.w3school.com.cn/js/js_operators.asp

    作者回复: 不要看这种垃圾教程,看MDN

    2019-07-09
    6
    13
  • 木木
    f`a${b}c`; 没有明白这个是什么意思

    作者回复: 写一个函数f试试就知道了。

    2019-04-04
    3
    9
  • mingingคิดถึง
    winter老师,模板字符串当做参数传入时不带括号的写法不是很懂: function f(a){console.log(a)} const b = 1 f`a${b}c` 打印出来是:["a", "c", raw: Array(2)]

    作者回复: 就是把模板拆成了数组,把${}的执行结果也放进数组

    2019-10-17
    4
    1
  • 炒饭
    @嗨海海 winter老师讲得是语言细节,这些应该都是基础知识,但实际上很多一线前端都忽略了这些。比起常见那些框架工具应用,这课在国内还是很难得的,特别还是winter老师开的,讲的透彻,感谢winter老师,让我受益匪浅
    2019-04-15
    16
  • vspt
    winter老师,问个问题,在react源码中经常看到如下写法,一直没太理解,请问这种写法有什么好处吗? ``` var validateFormat = function () {}; { validateFormat = function (format) { if (format === undefined) { throw new Error('invariant requires an error message argument'); } }; } ```
    2019-04-04
    1
    14
  • 桂马
    平时不确定优先级的一般都加括号
    2019-04-07
    5
  • 乃乎
    literal 翻译成字面量会不会更好,好像大多数翻译都是用的那个
    2019-04-23
    3
  • 木木
    f`a${b}c`;
    2019-04-04
    1
  • 小耿
    "不加 new 也可以构成 New Expression",请问这句咋理解?New Expression 不都需要加 new 吗?
    2023-03-21归属地:北京
  • 你好,阳光
    winter老师,有个疑问,new expression属于左值表达式,为何new Object()={}会报错invalid assignment left-hand side?
    2021-09-11
    3
收起评论
显示
设置
留言
16
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部