Sunday, April 19, 2020

Arrow Function

arrow function
Document

Arrow Function Syntax

Arrow function က ES6 မှာ ပါလာတဲ့ features တွေထဲက popular အဖြစ်ဆုံးတစ်ခုပါ ။ သူ့ကို fat arrow function လို့လည်းခေါ်ပါတယ်။ regular function(function expression) ရဲ့ syntax အရဆိုရင် function ဆိုတဲ့ keyword ပါမယ် သူ့နောက်မှာ parameters တွေကို parenthesis() ထဲ ရေးပြီး {} ထဲမှာ statements တွေရေးပါတယ်။
Example 

const  name = function(parameters){
 statements
}

const square = function(num){
 return num*num;
}
    
ဒီမှာဆိုရင် anonymous function တစ်ခုကို square ဆိုတဲ့ variable ထဲထည့်ထားတယ် ။ ပြီးတော့ အဲ့ဒီ function က num ဆိုပြီး parameter တစ်ခုယူတယ် ။ ပြီးတော့ return num * num ဆိုပြီးတော့ statement တစ်ခုရှိတယ်။
square(3);//9
    
square() ကို parameter ထည့်ပြီး Invoke လုပ်လိုက်ရင် 9 ရပါလိမ့်မယ် ။ Arrow function က function expression နဲ့ နဲနဲဆင်တူပါတယ် ။ ဒါပေမဲ့သူက ရေးရတာ ပိုတိုပါတယ်။ arrow function ရဲ့ syntax က () နဲ့ parameters ပါမယ် ပြီး‌တော့ =>(arrow) လိုက်မယ် ။ ပြီးတော့ statements လိုက်ပါတယ် ။
    Syntax: 
    const name = (parameters) => {
        Statements
    }    
အပေါ်က square function ကို arrow function ပုံစံနဲ့ပြန်ရေးကြည့်ပါမယ် ။
    const square = (num) => {
        return num * num;
    }    
Function expression နဲ့ arrow function ပြန် နှိုင်းယှဉ် ကြည့်တဲအခါ ကွဲပြားနေတာ တွေ့ရပါလိမ့်မယ် ။
    // Function Expression
    const squareExp = function(num){
        return num * num ;
    }
    
    //Arrow Function 
    const  squareArr = (num) => {
        return num * num;
    }    
Function keyword အစာ =>(arrow) ကို အသုံးပြုလိုက်ပါတယ် ။ သူတို့ ကို invoke လုပ်ပြီး ရင် output ကအတူတူပဲထွက်ပါလိမ့်မယ်။
    squareExp(3); // 9

    squareArr(3); //9     
ဒီမှာ မေးစရာတစ်ခုရှိပါတယ် ။ အလုပ်လုပ်ပုံခြင်းလည်းတူတယ် ။ same output လည်းရတယ် ။ ဒါဆို ဘာလို့arrow function( =>) ကို အသုံးပြုမလဲ ။ Arrow function (=>) ကို အသုံးပြုခြင်းအားဖြင့် function ကို shorten ပုံစံရေးလို့ရပါတယ် ။ ဥပမာ အပေါ် က square() function ကို
const square = num => num*num; 
ဆိုပြီးရေးလို့ရပါတယ် ။ same output ပဲထွက်ပါလိမ့်မယ်။ ဒီမှာဆို ရှုပ်သွားနိုင်ပါတယ် ။
    const square = (num) =>{
        return num * num ;
    }
    
    // Is the same as
    const square = num => num * num;     
နဲ့ အတူပါပဲ ။ ဒီ arrow function ကို ပြန်ရှင်းမယ်ဆိုရင် အကယ်၍ Arrow function က parameters မပါဘူးဆိုရင် parenthesis () ထဲမှာ ဘားမှမထည့်ပဲ အလွတ်တိုင်းပြန်ရေးပါတယ် ။
() => { statements }
အကယ်၍ parameter တစ်ခုပါခဲ့ရင် parenthesis() ကို ဖြုတ်ထားခဲ့လို့ရပါတယ် ။
parameter => { statements }
အကယ်၍ parameters နစ်ခုနှစ်ခုထက်ပိုခဲ့ရင် parenthesis() ထဲမှာ ‘,’ ခံပြီးရေးပါတယ် ။
    (parameter1,parameter2,....) => { statements } 
အဲ့ဒါကြောင့် အပေါ်က arrow function ကိုပြန်ကြည့်မယ် ဆိုရင်
    const square = (num) =>{
        return num * num ;
    }    
က
    // Is the same as
    const square = num => num * num;
နဲ့အတူတူပါပဲ။ ဒီမှာဆိုရင် နောက်ထပ် မှတ်စရာတစ်ခုက အကယ်၍ arrow function က (single line code) ကုတ်တစ်ကြောင်းထဲကိုပဲ return ပြန်ရမည်ဆိုလျှင် brackets {} နဲ့ return keyword တို့ကို ချန်ထားခဲ့လို့ ရပါတယ် ။ အလုပ်လုပ်ပုံခြင်းကတူတူပါပဲ ။ Function expression ကို shorten ပုံစံနဲ့ပြန်ပြရမယ်ဆိုလျှင်
    let name = function(parameters){
        return expression
      }
      
      Is shortened to:
      let name = (parameters) => expression      
ဒီလိုဖြစ်ပါလိမ့်မယ်။ အောက်ပါ function expression တွေကို ARROW FUNCTION ပုံစံနဲ့ ပြန်ပြောင်း ‌ရေးပေးခဲ့ပါအုံးဗျ။
    1.
    const add3 = function(num1, num2, num3){
      return num1 + num2 + num3;
    }
    
    2.
    const double = function(num){
      return num * 2;
    }
    
    3.
    const sayHi = function(){
      console.log('Hi');
    }
    
    4.
    const square = function(num){
      return num ** 2;
    }
    

No comments:

Post a Comment