JavaScript အဖြစ်များသောအမှားများ
ဤအခန်းတွင် ဖြစ်လေ့ရှိသော JavaScript အမှားအချို့ကို ထောက်ပြသည်။
Assignment Operator ကို မတော်တဆ အသုံးပြုခြင်း။
အကယ်၍ ပရိုဂရမ်မာသည် assignment operator ( ) ကို if statement =
တစ်ခုတွင် နှိုင်းယှဉ်အော်ပရေတာ ( ) အစား assignment operator ( ) ကို မတော်တဆအသုံးပြုပါက JavaScript ပရိုဂရမ်များသည် မျှော်လင့်မထားသောရလဒ်များကို ထုတ်ပေးနိုင်သည် ။==
x သည် 10 နှင့် မညီမျှသောကြောင့် ဤ if
ထုတ်ပြန်ချက်သည် (မျှော်မှန်းထားသည့်အတိုင်း) ပြန်တက်လာသည်-false
let x = 0;
if (x == 10)
10 သည် မှန်သောကြောင့် ဤ if
ထုတ်ပြန်ချက်သည် true
(မျှော်လင့်ထားသလိုမဟုတ်နိုင်) ၊
let x = 0;
if (x = 10)
0 သည် မှားယွင်းသောကြောင့် ဤ if
ထုတ်ပြန်ချက်သည် false
(မျှော်လင့်ထားသလိုမဟုတ်နိုင်) ၊
let x = 0;
if (x = 0)
assignment တစ်ခုသည် တာဝန်၏တန်ဖိုးကို အမြဲပြန်ပေးသည်။
နှိုင်းယှဥ်မှုကို မျှော်လင့်ခြင်း။
ပုံမှန်နှိုင်းယှဉ်မှုတွင်၊ ဒေတာအမျိုးအစားသည် အရေးမကြီးပါ။ ဤ if
ဖော်ပြချက်သည် အမှန်အတိုင်း ပြန်ဖြစ်သွားသည်-
let x = 10;
let y = "10";
if (x == y)
တင်းကျပ်သောနှိုင်းယှဉ်မှုတွင်၊ ဒေတာအမျိုးအစားသည် အရေးကြီးသည်။ ဤ if
ဖော်ပြချက်သည် မှားယွင်းကြောင်း ပြန်ပို့သည်-
let x = 10;
let y = "10";
if (x === y)
switch
ဖော်ပြချက်များသည် တင်းကျပ်သော နှိုင်းယှဉ် မှုကို အသုံးပြုထားသည်ကို မေ့ပစ်ခြင်းသည် ဘုံအမှားတစ်ခုဖြစ်သည် ။
၎င်းသည် case switch
သတိပေးချက်ကို ပြသပါမည်-
let x = 10;
switch(x) {
case 10: alert("Hello");
}
၎င်းသည် case switch
သတိပေးချက်ကို ပြသမည်မဟုတ်ပါ-
let x = 10;
switch(x) {
case "10": alert("Hello");
}
ရှုပ်ထွေးနေသော ထပ်လောင်းနှင့် ပေါင်းစပ်မှု
Addition သည် ဂဏန်း ပေါင်းထည့်ခြင်းအကြောင်း ဖြစ်သည်။
Concatenation သည် ကြိုးများ ထည့်ခြင်းအကြောင်း ဖြစ်သည်။
JavaScript တွင် လုပ်ဆောင်ချက်နှစ်ခုလုံးသည် တူညီသော +
အော်ပရေတာကိုအသုံးပြုသည်။
ထို့အတွက်ကြောင့်၊ နံပါတ်တစ်ခုအဖြစ် နံပါတ်တစ်ခုထည့်ခြင်းသည် နံပါတ်တစ်ခုကို string အဖြစ်ထည့်ခြင်းမှ မတူညီသောရလဒ်ကို ထုတ်ပေးလိမ့်မည်-
let x = 10;
x = 10 + 5; //
Now x is 15
let y = 10;
y += "5";
// Now y is "105"
ကိန်းရှင်နှစ်ခုပေါင်းထည့်သောအခါ ရလဒ်ကို ခန့်မှန်းရန် ခက်ခဲနိုင်သည်-
let x = 10;
let y = 5;
let z = x + y; // Now z is 15
let x = 10;
let y = "5";
let z = x + y; // Now z is "105"
နားလည်မှုလွဲတာတွေရှိသတဲ့။
JavaScript ရှိ နံပါတ်များအားလုံးကို 64-bits Floating point နံပါတ်များ (Floats) အဖြစ် သိမ်းဆည်းထားပါသည်။
JavaScript အပါအဝင် ပရိုဂရမ်းမင်းဘာသာစကားအားလုံးတွင် တိကျသော Floating Point တန်ဖိုးများအတွက် အခက်အခဲရှိသည်-
let x = 0.1;
let y = 0.2;
let z = x + y
// the result in z will not be 0.3
အထက်ဖော်ပြပါပြဿနာကိုဖြေရှင်းရန်၊ ၎င်းသည် များပြားခြင်းနှင့် ပိုင်းခြားရန် ကူညီပေးသည်-
ဥပမာ
let z = (x * 10 + y * 10) / 10; // z will be 0.3
JavaScript String ကို ချိုးဖောက်ခြင်း။
JavaScript သည် သင့်အား ထုတ်ပြန်ချက်ကို စာကြောင်းနှစ်ကြောင်းခွဲရန် ခွင့်ပြုလိမ့်မည်-
ဥပမာ ၁
let x =
"Hello World!";
သို့သော်၊ စာကြောင်းတစ်ခု၏အလယ်တွင် ဖော်ပြချက်ကို ချိုးဖောက်ခြင်းသည် အလုပ်မဖြစ်ပါ။
ဥပမာ ၂
let x = "Hello
World!";
စာကြောင်းတစ်ခုတွင် ဖော်ပြချက်ကို ချိုးဖျက်ပါက "backslash" ကို အသုံးပြုရပါမည်။
ဥပမာ ၃
let x = "Hello \
World!";
Semicolon လွဲမှားခြင်း
နေရာလွဲမှားသော semicolon တစ်ခုကြောင့်၊ ဤကုဒ်ပိတ်ဆို့ခြင်းသည် x တန်ဖိုးမည်သို့ပင်ရှိစေကာမူ လုပ်ဆောင်လိမ့်မည်-
if (x == 19);
{
// code block
}
Return Statement ကိုချိုးဖောက်ခြင်း။
၎င်းသည် စာကြောင်းတစ်ခု၏အဆုံးတွင် ကြေငြာချက်တစ်ခုကို အလိုအလျောက်ပိတ်ရန် မူရင်း JavaScript အပြုအမူတစ်ခုဖြစ်သည်။
ထို့အတွက်ကြောင့် ဤဥပမာနှစ်ခုသည် တူညီသောရလဒ်ကို ပြန်ပေးလိမ့်မည်-
ဥပမာ ၁
function myFunction(a) {
let power = 10
return a * power
}
ဥပမာ ၂
function myFunction(a) {
let power = 10;
return a * power;
}
JavaScript သည် သင့်အား ထုတ်ပြန်ချက်တစ်ခုကို စာကြောင်းနှစ်ကြောင်းခွဲရန်လည်း ခွင့်ပြုမည်ဖြစ်သည်။
ထို့အတွက်ကြောင့်၊ ဥပမာ 3 သည် တူညီသောရလဒ်ကို ပြန်ပေးလိမ့်မည်-
ဥပမာ ၃
function myFunction(a) {
let
power = 10;
return a * power;
}
သို့သော်၊ သင်သည် ဤကဲ့သို့ စာကြောင်းနှစ်ကြောင်းဖြင့် ပြန်စာကြောင်းကို ချိုးဖျက်ပါက ဘာဖြစ်နိုင်မည်နည်း။
ဥပမာ ၄
function myFunction(a) {
let
power = 10;
return
a * power;
}
function ကပြန်လာလိမ့်မယ် undefined
။
အဘယ်ကြောင့်? JavaScript က မင်းကို ဆိုလိုတယ်လို့ ထင်တဲ့အတွက်
ဥပမာ ၅
function myFunction(a) {
let
power = 10;
return;
a * power;
}
ရှင်းလင်းချက်
ထုတ်ပြန်ချက်တစ်ခု မပြည့်စုံပါက၊
let
JavaScript သည် နောက်တစ်ကြောင်းကို ဖတ်ရှုခြင်းဖြင့် ထုတ်ပြန်ချက်ကို အပြီးသတ်ရန် ကြိုးစားပါမည်-
power = 10;
ဒါပေမယ့် ဒီထုတ်ပြန်ချက် ပြီးသွားတဲ့အတွက်
return
JavaScript သည် ဤကဲ့သို့ အလိုအလျောက် ပိတ်သွားလိမ့်မည်-
return;
JavaScript တွင် semicolon ဖြင့် ပိတ်ခြင်း (အဆုံးသတ်ခြင်း) ကြေညာချက်များကို ရွေးချယ်နိုင်သောကြောင့် ထိုသို့ဖြစ်ရခြင်းဖြစ်ပါသည်။
JavaScript သည် ပြီးပြည့်စုံသောထုတ်ပြန်ချက်ဖြစ်သောကြောင့် စာကြောင်း၏အဆုံးတွင် ပြန်ပေးစာကြောင်းကို ပိတ်ပါမည်။
ဘယ်တော့မှ ပြန်မဖျက်ပါနဲ့ ။
အမည်ပေးထားသော အညွှန်းများဖြင့် Array များကို ဝင်ရောက်ကြည့်ရှုခြင်း။
ပရိုဂရမ်းမင်းဘာသာစကားများစွာသည် အမည်ပေးထားသော အညွှန်းများပါသည့် array များကို ပံ့ပိုးပေးသည်။
အမည်ပေးထားသော အညွှန်းကိန်းများပါသည့် array များကို associative arrays (သို့မဟုတ် hashes) ဟုခေါ်သည်။
JavaScript သည် အမည်ပေးထားသော အညွှန်းများပါသည့် array များကို မ ပံ့ပိုးပါ။
JavaScript တွင်၊ array များသည် နံပါတ်တပ်ထားသော အညွှန်းများ ကို အသုံးပြုသည် -
ဥပမာ
const person = [];
person[0] = "John";
person[1] = "Doe";
person[2] = 46;
person.length;
// person.length will return 3
person[0];
// person[0] will return "John"
JavaScript တွင်၊ အရာဝတ္ထု များသည် အမည်ရှိသော အညွှန်းများ ကို အသုံးပြုသည် ။
အကယ်၍ သင်သည် အမည်ရှိ အညွှန်းတစ်ခုကို အသုံးပြုပါက၊ array တစ်ခုကို ဝင်ရောက်သည့်အခါ၊ JavaScript သည် array ကို စံအရာဝတ္ထုတစ်ခုအဖြစ် ပြန်လည်သတ်မှတ်ပေးမည်ဖြစ်သည်။
အလိုအလျောက် အဓိပ္ပါယ်ဖွင့်ဆိုပြီးနောက်၊ array နည်းလမ်းများနှင့် ဂုဏ်သတ္တိများသည် သတ်မှတ်မထားသော သို့မဟုတ် မှားယွင်းသောရလဒ်များကို ထုတ်ပေးလိမ့်မည်-
ဥပမာ-
const person = [];
person["firstName"] = "John";
person["lastName"] = "Doe";
person["age"] = 46;
person.length; // person.length will
return 0
person[0];
// person[0] will return undefined
ကော်မာဖြင့် အဓိပ္ပါယ်ဖွင့်ဆိုချက်များကို အဆုံးသတ်ပါ။
အရာဝတ္ထုနှင့် array အဓိပ္ပါယ်ဖွင့်ဆိုချက်ရှိ ကော်မာနောက်ဆွဲများသည် ECMAScript 5 တွင် တရားဝင်ဖြစ်သည်။
အရာဝတ္ထု ဥပမာ-
person = {firstName:"John", lastName:"Doe", age:46,}
Array ဥပမာ-
points = [40, 100, 1, 5, 25, 10,];
သတိပေးချက် !!
Internet Explorer 8 ပျက်သွားလိမ့်မည်။
JSON သည် နောက်မှလိုက်သောကော်မာများကို ခွင့်မပြုပါ။
JSON-
person = {"firstName":"John", "lastName":"Doe", "age":46}
JSON-
points = [40, 100, 1, 5, 25, 10];
သတ်မှတ်မထားသည့်အရာသည် Null မဟုတ်ပါ။
JavaScript objects၊ variables၊ properties နှင့် method များ ဖြစ်နိုင်ပါသည် undefined
။
ထို့အပြင်၊ ဗလာ JavaScript အရာဝတ္ထုများသည် တန်ဖိုးရှိနိုင်သည် null
။
၎င်းသည် အရာဝတ္ထုတစ်ခုဗလာရှိမရှိ စမ်းသပ်ရန် အနည်းငယ်ခက်ခဲစေသည်။
You can test if an object exists by testing if the type is undefined
:
Example:
if (typeof myObj === "undefined")
But you cannot test if an object is null
, because this will throw an error if the
object is undefined
:
Incorrect:
if (myObj === null)
To solve this problem, you must test if an object is not null
,
and not undefined
.
But this can still throw an error:
Incorrect:
if (myObj !== null && typeof myObj
!== "undefined")
Because of this, you must test for not undefined
before you can
test for not null
:
Correct:
if (typeof myObj !== "undefined" && myObj !== null)