陳述式 v.s 表達式
陳述式
JS 的語句類型,用於命令執行指定的一系列操作
最大特徵是不會回傳結果
由於不會回傳結果,所以不能賦值在其他變數上面
MDN : https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Statements
// statement
var a;
// 不會回傳
表達式
又稱為表示式 , 運算式
經常透過一些符號結合上下語句並運算與回傳結果
MDN : https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Guide/Expressions_and_Operators
// expression
100 + 100
// 會回傳 200
name = '皮傑先生'
// = 為運算子(後面將會介紹)
// 這裡賦值的行為 就會稱為表達式
所以 陳述式 與 表達式
不一定是完整語句
其中一個片段,也可以稱為陳述式 與 表達式
// 函式陳述式 , 具名函式
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/
那今天的介紹就到這裡
若有任何問題 或 內容有誤
請跟我說唷