[JavaScript] 陳述式和表達式

🔍小範例大學問👊

1. 基本定義

  • 陳述式( Statement )
  • 表達式 ( Expression )
  • 函式陳述式 (Function Statement)
  • 函式表達式 (Function Expression)

2. 陳述式( Statement )

陳述式一定會做一些事情,但陳述式不會產生數值。
所以不能被放在會產生數值的地方,例如函式的參數、函式的回傳值、或是宣告變數時等號的右邊。

JavaScritp 裡的陳述式:

  • if 判斷式
if(a === 1){
    //doSomeThing
};
  • while 迴圈
while ( ) {
  //doSomeThing
};
  • for 迴圈
for (var i = 0 ; i<=10 ; i++ ){
    //doSomeThing
};
  • switch 判斷式
switch ( ) {
  case 1:
            //doSomeThing
    break;
  case 2:
            //doSomeThing
    break;
  default:
            //doSomeThing
};
  • try catch 判斷式
try{
    
}catch (){
    
};
  • 直接的函式宣告
let a = 1 ;
  • 變數宣告
function square(number) {
  return number * number;
}

3. 表達式 ( Expression )

表達式是會產生結果值的程式碼,而且很常是運算式。

1 + 2

functionInvocation()

ture || false d

true && true

a = 1  

a === 1

Array.isArray([]) ? doSomeThing() : doOtherThing()  

4. 函式陳述式( Function Statement )

函式陳述式是藉由直接給定名字來直接宣告一個函式。剛剛有說到變數宣告會使 JS 引擎來幫你保留記憶體空間,所以是陳述式。像這樣子直接的函式宣告,跟變數宣告會產生的行為是一樣的,差別是整個函式內容在語法解析階段都會保留進記憶體空間,這個行為就是之前提到的提升 ( Hoisting ),所以屬於函式的陳述式。

function functionStatement (){
	//doSomething 
}

5. 函式表達式 ( Function Expression )

另外一種宣告函式的方式是函式表達式,是把一個匿名函式指派給一個變數,這種宣告方式的函式內容不會在一開始就被提升,會被提升的只有該變數而已。在執行階段,才會把函式內容指派給變數,以下面程式碼為例,這個時候 functionExporession 才是一個可以用的函式,而變數的指派屬於表達式,因此這種方式也被稱為函式表達式。

let functionExpression = function(){
	//doSomeThing
}

參考文章

JS 原力覺醒 Day07 – 陳述式 表達式
陳述式 與 表達式

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

%d 位部落客按了讚: