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