iT邦幫忙

0

JS 陳述式 v.s 表達式 DAY51

陳述式 v.s 表達式


陳述式
JS 的語句類型,用於命令執行指定的一系列操作
最大特徵是不會回傳結果
由於不會回傳結果,所以不能賦值在其他變數上面

MDN : https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Statements

// statement
var a;
// 不會回傳

https://ithelp.ithome.com.tw/upload/images/20201014/20123039Y3C6PMlP3x.jpg


表達式
又稱為表示式 , 運算式
經常透過一些符號結合上下語句並運算與回傳結果

MDN : https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Guide/Expressions_and_Operators

// expression
100 + 100
// 會回傳 200

https://ithelp.ithome.com.tw/upload/images/20201014/20123039naVlZ11ERC.jpg

name = '皮傑先生'
// = 為運算子(後面將會介紹)
// 這裡賦值的行為 就會稱為表達式

https://ithelp.ithome.com.tw/upload/images/20201014/201230395O36Q6HYe2.jpg

所以 陳述式 與 表達式
不一定是完整語句
其中一個片段,也可以稱為陳述式 與 表達式


// 函式陳述式 , 具名函式
function fn(){

}
// 函式表達式 , 匿名函式
var fn = function(){

}

常見誤解區塊

block區塊

// 陳述式
{
    var name = '皮傑先生';
}

物件實字

//函式表達式
{
    name : '皮傑先生',
}

由於是函式表達式
所以可以用一個變數去接收

var a = {
     name : '皮傑先生',
}

補充

並非所有的函式表達式都是匿名函式

var functionC = function functionD() {
    console.log(functionC,functionD);
    // 具名函式只能夠在函式內被調用
}
functionC();
console.log(functionC,functionD); // functionD is not defined 
// (functionD) 無法在函式外使用
var num = 1;
var giveMoney = function giveMoreMoney(coin) {
    num +=1;
    console.log('執行giveMoney', num , coin);
    return coin > 100 ? coin : giveMoreMoney(num*coin)

}

console.log(giveMoney(20)); 

最後,有關於陳述式與表達式
也可以參考此篇文章
https://hsiangfeng.github.io/javascript/20200607/196651152/
那今天的介紹就到這裡
若有任何問題 或 內容有誤
請跟我說唷/images/emoticon/emoticon07.gif


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言