JavaScript 的表达式和语句有什么区别?

本贴最后更新于 1886 天前,其中的信息可能已经东海扬尘

2019-01-14

回答

JavaScript 有两种主要的语法:表达式和语句。还有一种是表达式语句,即在语句中写入表达式。可表述为:

  • 表达式:产生一个值
  • 语句:执行一个操作
  • 表达式语句:产生一个值并执行一个操作

一般的经验法则:

如果他有输出值或者可以把他赋值给一个变量,那么他就是一个表达式。否则就是一个声明。

语句

let x = 0
function declaration() {}
if (true) {
} 

语句作为指令可以显示的执行一些操作,但不会产生值。

let x
if (y >= 0) {
  x = y
} else {
  x = -y
} 

以上代码中仅 y >= 0 是表达式:他产生了一个值,要么 true,要么 false。而其他部分的代码不会生成值。

表达式

表达式会产生一个值,因此他们可以传递给函数。这是因为解释器可以用解析出的值去替换表达式。

5 + 5 // => 10
lastCharacter("input") // => "t"
true === true // => true 

表达式语句

当示例二中的 if 语句使用条件(三元)运算符简写后就可以成为表达式语句:

var x = y >= 0 ? y : -y 

这既是表达式又是语句,因为我们声明了一个变量 x(语句),并将产生值赋予了他(表达式)

加分回答

  • 分号可以结束一个语句 foo(); bar(),逗号会对表达式求值并且返回第二个表达式的结果 foo(), bar()
  • JavaScript 有以下五种类型的表达式:
  • 算数:得出一个数字,如 3.14159
  • 字符串:得出一个字符串,如 "Fred" 或 "234"
  • 逻辑值:得出 true 或 false
  • 基本表达式:JavaScript 中的关键字和一般表达式
  • 左值表达式:分配给左值
  • 函数声明 function foo() {}; 可以在声明之前使用
  • 函数表达式 let bar = function baz() {}; 可以省略函数名称且定义时就会被运行

返回总目录

每天 30 秒

  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 383 回帖 • 10 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    710 引用 • 1173 回帖 • 199 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    324 引用 • 1395 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...