(Day4) 陈述式 /表达式

前言

JavaScript 的语句分成两种 陈述式、表达式,这两种语法区分并不困难,接下来会一一介绍,比较特别的是函示也会分为两种: 函示陈述式、 函示表达式 ,这两种函示在『提升』特性上会有所差别,最後也会介绍到。

陈述式 (Statement)

陈述式的特色是执行程序码操作,但『不会回传任何值』。

常见的陈述式有:

这时想必就会有人想问,我们在浏览器建立任意变数时,他都会回传 undefined,那麽为什麽建立变数不是表达式?

这是因为浏览器在建立变数时,会需要替变数制作一个记忆体空间,而回传的这个 undefined 则是告诉使用者已经为这个变数,建立好对应的记忆空间,而非真正的回传一个值。
Untitled

表达式 (Expreesion)

又称运算式,执行表达式时,表达式会『回传值』

MDN 同样也有提到表达式的种类:https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Guide/Expressions_and_Operators#运算式

在上面有提到在浏览器建立变数时, 会回传 undefined ,这点其实在其他『陈述式』上也会发生,例如

function test(){
}

if(true){
}

for(var i; i<10 ; i++){}

上述陈述式在执行时都会回传 undefined
undefined2
但是这些都不是真正的回传值,而是跟变数一样,是浏览器告诉使用者,已经为了这段程序码建立好对应记忆体空间,而真正的表达式则是一定会回传『值』,例如:

1 + 1
array = [1,2,3]
array ===  true

Untitled

函示陈述式

函示根据建立方法分成:函示陈述式、函示表达式 两种。
函示陈述式就是我们常使用的 function xxx() 由於这种函示带有自己的名称,因此又被称做具名函示,例如:

function test(){
console.log("函示陈述式、又称具名函示")
}

函示表达式

函式表达式会使用一个变数搭配等号运算子,以及一个函示。

var test = function(){
console.log("函示表达式、又称匿名函示")
}

两者主要差别在之前提到的『提升』不同,函示陈述式因为提升效果关系,呼叫函示的 xx() 可以在函示上方

test1() //函示陈述式、又称具名函示
function test1(){
	console.log("函示陈述式、又称具名函示")
}

而函示表达式则不行,根据提升效果 变数 虽然会在创造阶段被创造出来,但实际上他是没有值的状态,因此将 呼叫函示的 xx() 摆在函示表达式上方,是会跳出错误讯息。

test2() //test2 is not a function
var test2 = function(){
console.log("函示表达式、又称匿名函示")
}

参考文献


<<:  [Day 4 ] 步入学程序的第一关

>>:  [Angular] Day4. Component

Day14 Sideproject(作品集) from 0 to 1 - 前端专案架构

在很多很多的前置作业後 今天终於要开始写code了 到此为止我们应该流程画有了 画面流程也有了 今天...

Day 4 - 虚拟机的设置

Day 4 - 虚拟机的设置 今天我会讲Android Studio虚拟机的设置,那我们废话不多说,...

Bluehost WordPress 教学 – 详细图文教你如何从购买主机到安装 WordPress 网站 Bluehost 中文教学

Bluehost 是 WordPress 官方推荐的虚拟主机商之一,如果你想要踏入网站架设的领域当...

[Day 26] Edge Impulse + BLE Sense也能感受彩色的人生

在 [Day 20],[Day 21],[Day 22] 介绍了「Edge Impulse + BL...

30天打造品牌特色电商网站 Day.28 网站分析工具

一转眼30天的文章就快到尾声啦,在结束之前这两天会跟大家分享关於网站分析以及SEO优化的部分,网站分...