Thursday, April 23, 2020

Type Conversions in JavaScript

typeconversions
Type Conversions

Type Conversion in JavaScript

JavaScript မှာ plus operator(+) ကို string နှစ်ခု concatenate လုပ်ချင်တဲ့အခါ number နှစ်ခု add ချင်တဲ့အခါ သုံးလေ့ရှိပါတယ်။ သ‌ဘောက string နှစ်ခုဆိုကိုဆက်ပြီး number နှစ်ခုဆိုပေါင်းလိုက်ပါတယ်။ string တွေ number တွေမှမဟုတ်ပါဘူး အခြားသော data types (array,object,null,undefined,boolean) တွေမှာ လည်းသုံးပါတယ်။ JavaScript add operation(ပေါင်းခြင်း) က အချက်သုံးချက်လုပ်ပါတယ်။
operand + operand  = result;
အချက်(၁) ။ အနည်းဆုံး operand တစ်ခုက object ဖြစ်နေရင် သူက primitive value(string, number or boolean) ကိုပြောင်းလိုက်ပါတယ်။ အချက်(၂) ။ အနည်းဆုံး operand တစ်ခုက string ဆိုရင် နောက်ထပ် operand ကို string အဖြစ်ပြောင်းပြီး concat လုပ်လိုက်ပါတယ် အချက်(၃) ။ အပေါ်က နှစ်ချက်လုံးနဲ့ မညီခဲ့ဘူး ဆိုရင် operand နှစ်ခု လုံးကို number အဖြစ်ပြောင်းပြီး သင်္ချာနည်း အရ ပေါင်းလိုက်ပါတယ်။ ဥပမာ
    Example 1: Number and string 

    let result = 1 + “5” // “15”    
ဒီမှာဆိုရင် ဒုတိယ operand က string ဖြစ်လို့ အချက်(၂) အရ number 1 ကို “1” (string) အဖြစ်ပြောင်းသွားပါတယ်။ ဒါကြောင့် “1” + “5” ဖြစ်သွားပြီး “15” ရပါတယ်။
    Example 2: Number and array
    let  result  = [1 , 3 , 5] +1; //”1,2,51” 
ဒီမှာဆိုရင် အချက်(၁) အရ array ကို primitive value အဖြစ်ပြောင်းလိုက်ပါတယ်။ primitive value : “1,3,5” အချက်(၂) အရ number 1 ကို string “1” အဖြစ်ပြောင်းလိုက်ပါတယ်။ အဲ့ဒါကြောင့် “1,3,5” +”1” ဖြစ်သွားပါတယ်။ ဒါကြောင့် string concatenation ဖြစ်သွားပြီး “1,3,51” ဆိုပြီးရပါတယ်။
    Example 3: Number and boolean 

    let  result = 10 + true; //11    
ဒီမှာဆိုရင် အချက်(၃) အရ boolean true ကို number 1 အဖြစ်ပြောင်းပြီး 10 + 1 ဖြစ်သွားပါတယ်။ ဒါကြောင့် 11 ဆိုပြီး ရပါတယ်။
    Example 4: Number and object 

    let result = 15 + {}; //”15[object Object]”     
ဒီမှာဆိုရင် ဒုတိယ operand က object ဖြစ်ပါတယ်။ ဒါကြောင့် အချက်(၁) အရ object ရဲ့ primitive ဖြစ်တဲ့ string “[object Object]” ကိုပြောင်းပါတယ်။ ပြီးတော့ အချက်(၂) အရ string တစ်ခုပါနေတာကြောင့် number 15 က string “15” ပြောင်းသွားပါတယ်။ ဒါကြောင့် “15” + “[object Object]” ဆိုပြီး string concatenation ဖြစ်သွားပြီး “15[ojbect Object]” ရပါတယ်။ ဒီမှာ ဆိုရင် သတိထားစရာတစ်ခုရှိပါတယ်။ object ကနေ string value ပြောင်းသွားတာပါ။ object တစ်ခုဆောက်ပြီ ဆိုလျှင် သူရဲ့ built in method တွေပါပါတယ်။ အဲ့ဒီထဲကမှာ valueOf() ဆိုတဲ့ method က primitive value မဟုတ်ဘဲ objectကို သူ့ကိုသူ retrun ပြန်စေပါတယ်။ နောက်ပြီး တစ်ဆက်ထဲ toString() method ကို သုံးပြီး string ကို return ပြန်စေပါတယ်။ ဒါကြောင့် ဒုတိယ operand ဖြစ်တဲ့ object က string ပြောင်းသွားပြီး string concatenation ဖြစ်သွားပါတယ်။
    Example 5:Number and null 
    let result = 8 + null ; //8     
ဒီမှာဆိုရင် number 8 ထွက်ပါတယ်။ operand နှစ်ခုလုံးက string မဟုတ်တာကြောင့် အချက်(၃) အရ number တွေအဖြစ်ပြောင်းပြီး 8 + null (number addition) number နှစ်ခု‌ပေါင်းပြီး number 8 ရပါတယ်။
    Example 6:String and null 
    let result = “queen” + null // “queennull”    
ဒီမှာဆိုရင် string “queennull” ဆိုပြီး ရပါတယ်။ ပထမ operand က string ဖြစ်တာကြောင့် အချက်(၂)အရ null က string “null” ဖြစ်သွားပါတယ်။ ဒါကြောင့် string concatenation(“queen” + “null”) ဖြစ်သွားပြီး string “queennull” ဆိုပြီး ရပါတယ်။
    Example 7:Number and undefined

    let result = 12 + undefined; // NaN     
ဒီမှာဆိုရင် number NaN ရပါတယ် ။ နှစ်ခုလုံးက string မဟုတ်တာကြောင့် အချက်(၃) အရ undefined က number NaN ဆိုပြီးပြောင်းသွားပါတယ်။ ဒါကြောင့် 12 + NaN ကို number addition လုပ်လိုပါတယ်။ ဒါကြောင့် number NaN ဆိုပြီးတော့ရပါတယ်။ ဒီနေရာမှာ မှတ်စရာ တစ်ခုရှိပါတယ်။ NaN သည် ဘာနဲ့ ပေါင်း ပေါင်း NaN ပဲရပါတယ်။

No comments:

Post a Comment