【Day09】陈述式与表达式

陈述式(Statement)

JavaScript 语句类型,用於命令执行指定一系列操作,最大的特徵是不会回传结果,

因为陈述式不会回传结果,因此陈述式不能赋值到变数上

范例:

回传结果可以藉由 Chrome 浏览器开发人员工具的 Console 来查看

  • {var a}
  • var a
  • if (1 === 1) {}
  • for 回圈

上述结果只会显示 undefined,而不会回传结果,因此视为陈述式

如果将陈述式赋值到变数上会产生错误

var a = if (1 === 1) {}

上方范例会显示 SyntaxError: Unexpected token 'if'

代表陈述式无法赋值到变数中

其他陈述式内容详 MDN 参考文件

表达式(Expression)

又称为表示式、运算式,经常透过一些符号结合上下语句并运算及回传结果

范例:

回传结果可以藉由 Chrome 浏览器开发人员工具的 Console 来查看

  • 1 + 1
  • name = 'weiwei'
  • 1 === 1
  • {name: 'weiwei'}

上述范例都会回传对应的结果,因此会被视为表达式

其他表达式内容详 MDN 参考文件

函式陈述式和函式表达式

函式陈述式中函式一定要赋予名称,而有名称的函式称为具名函式,

函式表达式中函式可以没有名称,而没名称的函式称为匿名函式,

两者的差异在於提升(Hoisting)的效果不同

范例:

// 函式陈述式、具名函式
function a() {}
a();

// 拆解
// 创造阶段
function a() {}

// 执行
a();
// 函式表达式、匿名函式
var a = function() {}
a();

// 拆解
// 创造阶段
var a;

// 执行
a = function() {}
a();

block 范例

{} 在 JavaScript 中称为 block,block 也是陈述式的一种,

但它也有物件实字的用法,在当成物件实字使用时,可以赋值到变数中。

// block
{
    var a = 'weiwei'
}

错误范例:

{
    const a = 'weiwei'
}
console.log(a);

此时会显示 ReferenceError: a is not defined

因为 block 内使用 es6 定义变数时,作用域只在 {}

// 物件实字,此为定义物件的一种方式
{
    a: 'weiwei'
}

var b = {
    a: 'weiwei'
}

以上为陈述式与表达式内容,感谢观看。


<<:  【第九天 - Quick Sort 题目分析】

>>:  部署 Google App Script 专案(2) & Line Bot 简单回应讯息

Gulp 基础介绍 gulp-postcss 与 autoprefixer DAY81

这里要来介绍如何优化 css 有时候我们因为要加前缀词(有的旧浏览器不支援,所以需要加) 但这会浪费...

< 关於 React: 开始打地基| 建立一个最小的单位 “Element” >

09-04-2021 避免与component混淆的最小单位 在建立element时,与DOM el...

Day12-Express 的部署

Express 利用 pm2 做管理(因为 docker 坑很深 加上来的话会写不完) Expres...

Day17 PHP的常用函数-2:数组

数组 array(): 生成一个数组 range(): 创建并返回一个包含指定范围的元素的数组 co...

[Day25] 透过GCP实作(1/4):透过Cloud Function直接拉取资料

接下来这几天,将会带领各位以GCP的架构的视角。 向各位阐述我们先前进行的DialogFLow F...