Expression 与 Statement

表达式 (Expression)

A unit of code that results in a value.

表达式会形成一个值,而这个值它不一定被储存在某变数中。
EX: 1+1 //2
运算子的运算,刚刚上面的范例是加号运算子回传的2,也就是它执行完後就回传这个结果。

再举个例子,等号的运算子,因为它是会回传右边的值的函数,所以
a = 3 是表达式,因为它这个等号运算子回传3。

简单来说,表达式回传一个值。

陈述式 (Statement)

当陈述式被执行时,并不会回传值。
例如,「宣告」就是陈述式,它不会回传值,但是会储存在记忆体中,代表有这个东西。
EX: var a;

if Statment 是陈述式还是表达式?

if statement 不会回传值,所以它是陈述式(所以才叫if statement 啊 XD)

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

};
VM1065:1 Uncaught SyntaxError: Unexpected token 'if'

像上面这样会出错!
但是if statement 里面小括号放的是 会return true or false 的 expression(表达式)

函数的 陈述式与表达式

函数陈述式:

EX:

function hello(){//这是一个具名函数
console.log('Hello!');
}

创造这个叫hello的函式直接存在记忆体。
而程序一行一行执行到这里并没有回传东西,甚麽事情都没有做。
**而这个陈述式可以被hoisting
/**hoisting: 所有的宣告都会被提升到最顶端,而JavaScript是由上而下逐行执行,所以会有「先使用後宣告」的效果。
可以参考:Shubo 的程序教学笔记 [教学] JavaScript 中的 Hoisting 是什麽意思?let const var 的差异居然是这个?

函数表达式:

EX:

var hello = function(){//这是一个匿名函数,当然这个函数要有名称也可以
console.log('hello');
}

你把一函式指派给宣告的一个变数叫hello,代表执行程序时创造并回传了这个函数(这是一个物件)给 var hello。
事实上,函数表达式也是一级函数的一种表现,就是将一个匿名函数 (anonymous function / function literal) 当作值指定给一个变数。

卡斯伯's blog JavaScript 表达式观念及运用 - JS Expression

bonnieli1414 【Day 21】JavaScript 函式
古德瑞 02. 陈述式与表达式


<<:  Day 10:AWS是什麽?30天从动漫/影视作品看AWS服务应用 -《夏日大作战》

>>:  Day 19: Let's Koin!Koin 实作依赖注入

伪元素(pseudo element)、伪类别(pseudo element)

伪元素 : Before 、After Before 对指定元素添加最後一个子元素 After 对指...

硬体安全模组 (HSM) 的身份验证最不相关-职责分离(SOD)

如今,“秘密”(secret)是认证的基础。我们通常使用密码(您知道的东西)、令牌中的加密密钥(您拥...

【领域展开 08 式】 WordPress 布景主题选择 (彷佛发现无底洞

有时寂寞太沉重,身边彷佛只是观众 Study 後必须套用一下 Tanya 无底洞的歌词,选完使用 W...

Day08:别为了钱而放弃权力

今天来谈谈修饰子(Modifier)。 修饰子我觉得可以分为三大类,第一种就是封装用的修饰子,第二种...