Javascript 运算子、型别与文法 - 陈述式与表达式

陈述式与表达式的差异

https://ithelp.ithome.com.tw/upload/images/20210810/20140506fBNbIM56YS.png

  • 陈述式:不会回传结果,而是执行特定的程序码,如使用 if...elseswitchtry...catch,变数宣告 varletconst
  • 表达式:进行运算之後,回传结果。只要是能够取到值的程序码就可以称做表达式
// statement 陈述式
let a = 123;

// expression 表达式
console.log(a);

函式陈述式 以及 函式表达式

两者的差别就是 hoisting 的顺序,在 创造阶段 跟 执行阶段 赋值的差别。

// 函式陈述式
function fn () {
    ...
}

// 函式表达式
let a = function () {
    ...
}

Block 区块 {}

这样的结构,称作为 Block,而在 Block 中,可以执行其他的 陈述式 或是 表达式。

//陈述式
{   
    let ming = '小明';
}

还有经常看到的结构,就是 物件实字

//陈述式
{   
    ming: '小明'
}

这样的结构可以利用变数赋值,相反的 Block 的结构则不行。

// X
let a = {
    var b = '小明';
}

// O
let a = {
    ming: '小明'
}

参考文章


<<:  恳求解答

>>:  Javascript 运算子、型别与文法 - 原始型别及物件型别

【程序】陷入低潮 转生成恶役菜鸟工程师避免 Bad End 的 30 件事 - 23

https://youtu.be/vpwC347cXog 陷入低潮 了解低潮 专注在可控的短期 充...

Quartz.Net Job整合DI的生命周期问题

Quartz.Net 提供直接整合.Net Core DI的扩展,安装底下的套件即可 Install...

Day9 云端储存 - SAN

SAN - 网路上的硬碟 我的工作就是开发公司的SAN产品,所以对他比较了解 SAN就是空出一个网...

Day13: 【TypeScript 学起来】只有 TS 才有的型别: Enum (列举)

是说TS针对型别的类型也太讲究,写好多天还没写完(其实是我30篇不够XDD),哈哈不罗嗦, 今天继...

Day 14. Hashicorp Vault: Backup (Consul)

Hashicorp Vault: Backup (Consul) 在Day 12 有提到使用Cons...