iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0
Modern Web

初學者跪著學JavaScript系列 第 10

初學者跪著學JavaScript Day10 : Expressions 表達式/運算式 和Statement 述句

一日客家話:中文:吃喜酒 客語:ㄅㄨㄣˊ 擰嗆

Expressions 在中文會翻譯表達式/運算式
閱讀英文文章時經常出會expression和Statement ,身為只有google英文能力的我經常被搞混
前面expression和statement 小姐我一定要看到你的真面目~

JS建立兩種語法結構:ExpressionStatement

expression運算式:
JS的一個片語,這個片語會產生一個值,複雜的運算式是由簡單運算式組成
這個片語可能為某個值/變數或運算子結合,會有這些literals、variable、operator、function call
會估算一個值,
估算出來的值可以是number、string、boolen或特殊的值像是null、NaN...等

A statement is a piece of code that can be executed and performs some kind of action.
statement:像是擁有行動能力的人
1.是一段code可以執行或執行程式碼的操作能力
2.大部分述句最後會有分號;


最簡單的運算式:稱為 primary expressions

哪些是primary expressions?

  • 常數
  • literal values(上一章有討論)
  • certain language keywords(特定語言關鍵字)
  • variable references(變數參考)
    ECMA

常數 const

literal 是直接內嵌在程式碼中的常數值

"wendy" =>字串字面值
100  =>數字字面值
/pattern/ =>正規表達式字面值

特定語言關鍵字 certain language keywords

圈起來

true //估算為boolean 的真值
false //估算為boolean 的假值
null //估算為null值
this //估算為目前的物件

ture、false也是字面值也有可能會是const

變數參考

對變數、const 、全域物件的特性的reference

x //估算為變數x的值
temp //估算變數temp的值
undefined //全域物件的undefined 特性的值

整理

3
0.05
'test'
true
false
this 
undefined
fruit
function
class
function*
yield 
yield* 
async function* 
await 
/pattern/
() 

可以結合iteral+variable+operator

指定=
數學:+*-/
複合指定 : += 、-=
遞增/遞減 :++、--
物件的property存取

Arithmetic expressions

evaluate to a number

1 / 2
i++
(temp -32)*5/10
5*5/10

String expressions

evaluate to a string

'wellcome ' + 'wendy'

Array and object initializers expressions

[] //array literal
{} //object literal
[8,9,10]
{a: ‘apple, b: 'banana'}
{a: {b: banana}}

Logical expressions

a && b
a || b
!b

Left-hand-side expressions

new、super 、...obj

其實還很多種就不一一列舉


statement 述句

會執行特定動作、數字、運算子的組合

特定動作會像是宣告、methods call ,function call...等

const temp = 2 ;
const eat = apple*10;

Assignment statement
語法:varable = expression

1.等號右邊: 會估算表達式的值
2.等號左邊: 把結果assign到等號左邊的變數

statement 有哪些?

ECMA262:

mdn:
流程控制

  • Block
  • break
  • continue
  • if...else
  • switch

宣告

  • var
  • let
  • const

函數與類別(Class)

  • function
  • function*
  • class

迭代(Iteration):
do while
for

Note:
statement 會包含expression,expression 計算完一個值之後會執行一些動作

自己的想法:

const num = 5+3;

expression:5+3
5+3會賦值到num
這整件事會稱為statement

最後在書中看到這句話
statement 與 expressions 有對應的角色
statement 像是句子
expression 像是片語
expression可以純粹或自成一體

目前先到這裡~裡面還更多的細節,自己也沒有全部理解。再度跪下

https://exploringjs.com/impatient-js/ch_syntax.html#statement-vs-expression
Program Building Blocks: Variables, Expressions, Statements
mdn
CNIT 133 Interactive Web Pags – JavaScript and AJAX
JavaScript Expressions
ECMA
JavaScript大全 第七版
你所不知道的 JS:導讀,型別與文法


上一篇
初學者跪著學JavaScript Day9 : 讓我困惑的Literals
下一篇
初學者跪著學JavaScript Day11 : 運算子的優先順序
系列文
初學者跪著學JavaScript30

2 則留言

0
南國ㄟ安迪
iT邦新手 5 級 ‧ 2021-09-25 13:44:45

前面expression和statement 小姐我一定要看到你的真面目~

幫自己畫重點

wendy iT邦新手 5 級 ‧ 2021-09-25 13:54:43 檢舉

期待你的大作

消失的小姐:expression和statement

0
Hooo
iT邦新手 5 級 ‧ 2021-09-25 14:45:45

一日客家話:中文:吃喜酒 客語:ㄅㄨㄣˊ 擰嗆

是為了明天要吃喜酒的佳萱嗎?
今天的圖很 Wendy 喜歡

為何我不知道!!!
/images/emoticon/emoticon23.gif

我要留言

立即登入留言