判斷一段程式碼為陳述式或表達式,可依據「是否會回傳結果(值)」來做判斷。
而他們分別有以下特點:
陳述式 Statement
陳數式不會回傳結果 ( 值 )
- 用於命令執行、指定的一系列操作
- 陳述式類別可參考MDN文件
- 陳述式範例 :
//宣告變數是一種陳數式
var ming;//if句型是一種陳數式,在裡面可以有表達式
if(1 === 1){}//block區塊形式的陳述式
{
var ming ='小明';
}//block 語句可用const 來定義變數,此時在{}內宣告的變數會只存在{}這個作用域內。
{
const ming = '小明';
}
表達式 Expression
表達式會回傳結果 ( 值 )
- 又稱為表示式、運算式。
- 經常透過一些符號 (運算子) 結合上下語句,並運算及回傳結果。
- MDN文件: 運算式是任何一段可以取得一個值的程式碼。
- 表達式範例:
//使用運算子運算的表達式
100 + 100//利用'='運算子賦予值的表達式
ming = '小明';//物件實字
var a={
ming: '小明'
}
函式陳述式 Function Statement
也稱為具名涵式
function callName(){}
函式表達式 Function Expression
又稱為匿名函式
先宣告一個變數,並且用 '=' 運算子將函式賦值到宣告的變數上
var callName = function() {}
函式陳述式、函式表達式的「提升hoisting」特性會有所不同,
可參考我的另一篇文章 :
資料參考來源 :