JS ကျူတိုရီရယ်

JS ပင်မ JS မိတ်ဆက် JS ဘယ်သွားမလဲ။ JS Output JS ထုတ်ပြန်ချက် JS Syntax JS မှတ်ချက်များ JS အပြောင်းအလဲများ JS Let JS Const JS အော်ပရေတာများ JS ဂဏန်းသင်္ချာ JS တာဝန် JS ဒေတာအမျိုးအစားများ JS လုပ်ဆောင်ချက်များ JS အရာဝတ္ထုများ JS ပွဲများ JS စာတန်းများ JS စာတန်းနည်းလမ်းများ JS စာတန်းရှာဖွေမှု JS String Templates JS နံပါတ်များ JS နံပါတ်နည်းလမ်းများ JS Arrays JS Array Methods JS Array အမျိုးအစား JS Array Iteration JS Array Const JS ရက်စွဲများ JS ရက်စွဲပုံစံများ JS နေ့စွဲ နည်းလမ်းများ ရယူပါ။ JS ရက်စွဲ သတ်မှတ်နည်းလမ်းများ JS သင်္ချာ JS Random JS Booleans JS နှိုင်းယှဉ်မှုများ JS အခြေအနေများ JS Switch JS Loop For JS Loop For In JS Loop For Of JS Loop While JS Break JS Iterables JS အစုံများ JS Maps JS အမျိုးအစား JS အမျိုးအစားပြောင်းခြင်း။ JS Bitwise JS RegExp JS အမှားများ JS နယ်ပယ် JS Hoisting JS တင်းကျပ်သောမုဒ် JS ဒီ Keyword ပါ။ JS Arrow Function JS သင်တန်းများ JS JSON JS Debugging JS စတိုင်လမ်းညွှန် JS အကောင်းဆုံးအလေ့အကျင့်များ JS အမှားများ JS စွမ်းဆောင်ရည် JS သီးသန့်စကားလုံးများ

JS ဗားရှင်းများ

JS ဗားရှင်းများ JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge JS သမိုင်း

JS အရာဝတ္ထုများ

Object အဓိပ္ပါယ်ဖွင့်ဆိုချက် Object Properties များ အရာဝတ္ထုနည်းလမ်းများ အရာဝတ္ထုပြသခြင်း။ အရာဝတ္ထု ဆက်စပ်ပစ္စည်းများ Object Constructors များ Object Prototypes Object Iterables အရာဝတ္ထုအစုံများ အရာဝတ္ထုမြေပုံများ Object ကိုးကား

JS လုပ်ဆောင်ချက်များ

လုပ်ဆောင်ချက် အဓိပ္ပါယ်ဖွင့်ဆိုချက် လုပ်ဆောင်ချက် ကန့်သတ်ချက်များ Function Invocation လုပ်ဆောင်ချက်ခေါ်ဆိုမှု လုပ်ဆောင်ချက်ကို အသုံးပြုပါ။ Function ပိတ်ခြင်းများ

JS သင်တန်းများ

အတန်းမိတ်ဆက် Class Inheritance အတန်းထဲမှာလည်း

JS Async

JS ပြန်ခေါ်မှုများ JS Asynchronous JS ကတိများ JS Async/Await

JS HTML DOM

DOM မိတ်ဆက် DOM နည်းလမ်းများ DOM စာရွက်စာတမ်း DOM ဒြပ်စင်များ DOM HTML DOM ပုံစံများ DOM CSS DOM အန်နီမေးရှင်းများ DOM ပွဲများ DOM ဖြစ်ရပ် နားထောင်သူ DOM လမ်းညွှန် DOM Nodes DOM စုစည်းမှုများ DOM Node စာရင်းများ

JS Browser BOM

JS Window JS မျက်နှာပြင် JS တည်နေရာ JS သမိုင်း JS Navigator JS Popup သတိပေးချက် JS Timing JS Cookies

JS ဝဘ် API များ

ဝဘ် API မိတ်ဆက် ဝဘ်ဖောင် API ဝဘ်သမိုင်း API ဝဘ်သိုလှောင်မှု API Web Worker API Web Fetch API ဝဘ် Geolocation API

JS AJAX

AJAX နိဒါန်း AJAX XMLHttp AJAX တောင်းဆိုချက် AJAX တုံ့ပြန်မှု AJAX XML ဖိုင် AJAX PHP AJAX ASP AJAX ဒေတာဘေ့စ် AJAX အပလီကေးရှင်းများ AJAX ဥပမာများ

JS JSON

JSON မိတ်ဆက် JSON Syntax JSON နှင့် XML JSON ဒေတာအမျိုးအစားများ JSON Parse JSON Stringify JSON အရာဝတ္ထုများ JSON Arrays JSON ဆာဗာ JSON PHP JSON HTML JSON JSONP

JS နှင့် jQuery

jQuery ရွေးချယ်မှုများ jQuery HTML jQuery CSS jQuery DOM

JS ဂရပ်ဖစ်

JS ဂရပ်ဖစ် JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

JS ဥပမာများ

JS ဥပမာများ JS HTML DOM JS HTML ထည့်သွင်းမှု JS HTML Objects JS HTML ပွဲများ JS Browser JS တည်းဖြတ်သူ JS လေ့ကျင့်ခန်းများ JS Quiz JS လက်မှတ်

JS ကိုးကားချက်များ

JavaScript Objects HTML DOM အရာဝတ္ထုများ


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)