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 အကောင်းဆုံးအလေ့အကျင့်များ


ကမ္ဘာလုံးဆိုင်ရာပြောင်းလွဲမှုများကို ရှောင် ပါ၊ ရှောင်ပါ new၊ ရှောင် ==ပါ၊ ရှောင်ပါ။eval()


Global Variables များကို ရှောင်ပါ။

ကမ္ဘာလုံးဆိုင်ရာကိန်းရှင်များအသုံးပြုမှုကို လျှော့ချပါ။

၎င်းတွင် ဒေတာအမျိုးအစားများ၊ အရာဝတ္ထုများနှင့် လုပ်ဆောင်ချက်များ အားလုံးပါဝင်သည်။

ကမ္ဘာလုံးဆိုင်ရာ ကိန်းရှင်များနှင့် လုပ်ဆောင်ချက်များကို အခြားသော script များဖြင့် အစားထိုးနိုင်ပါသည်။

၎င်းအစား local variables များကိုသုံးပါ၊ နှင့် ပိတ် နည်းကိုအသုံးပြုနည်းကို လေ့လာ ပါ။


Local Variables များကို အမြဲကြေငြာပါ။

လုပ်ဆောင်ချက်တစ်ခုတွင် အသုံးပြုသည့် variable အားလုံးကို local variables အဖြစ် ကြေညာသင့်သည်။

ဒေသဆိုင်ရာ ကိန်းရှင်များ ကို သော့ချက်စကားလုံး သို့မဟုတ် သော့ချက်စကားလုံး သို့မဟုတ် သော့ချက်စကားလုံး ဖြင့် ကြေညာ ရမည် ၊ မဟုတ်ပါက ၎င်းတို့သည် ကမ္ဘာလုံးဆိုင်ရာ ကိန်းရှင်များ ဖြစ်လာမည်ဖြစ်သည်။varletconst

တင်းကျပ်သောမုဒ်သည် မကြေငြာထားသော ကိန်းရှင်များကို ခွင့်မပြုပါ။


ထိပ်တန်းကြေငြာချက်များ

ကြေငြာချက်အားလုံးကို script သို့မဟုတ် function တစ်ခုစီ၏ထိပ်တွင်ထည့်ရန် coding လေ့ကျင့်ခြင်းသည် ကောင်းမွန်ပါသည်။

၎င်းသည်-

  • သန့်ရှင်းသောကုဒ်ကိုပေးပါ။
  • Local variable များကို ရှာဖွေရန် တစ်ခုတည်းသော နေရာကို ပေးပါ။
  • မလိုလားအပ်သော (အဓိပ္ပာယ်သက်ရောက်) ကမ္ဘာလုံးဆိုင်ရာ ပြောင်းလွဲချက်များကို ရှောင်ရှားရန် ပိုမိုလွယ်ကူစေသည်။
  • မလိုလားအပ်သော ပြန်လည်ကြေငြာမှုများ ဖြစ်နိုင်ချေကို လျှော့ချပါ။
// Declare at the beginning
let firstName, lastName, price, discount, fullPrice;

// Use later
firstName = "John";
lastName = "Doe";

price = 19.90;
discount = 0.10;

fullPrice = price - discount;

၎င်းသည် loop variable များအတွက်လည်း သက်ဆိုင်သည်-

for (let i = 0; i < 5; i++) {


Variables များကို စတင်ပါ။

ကိန်းရှင်များကို သင်ကြေညာသောအခါတွင် ကိန်းရှင်များကို စတင်ရန် ကုဒ်ရေးနည်းကောင်းတစ်ခုဖြစ်သည်။

၎င်းသည်-

  • သန့်ရှင်းသောကုဒ်ကိုပေးပါ။
  • ကိန်းရှင်များကို အစပြုရန် တစ်ခုတည်းသော နေရာကို ပေးပါ။
  • သတ်မှတ်မထားသော တန်ဖိုးများကို ရှောင်ကြဉ်ပါ။
// Declare and initiate at the beginning
let firstName = "",
let lastName = "",
let price = 0,
let discount = 0,
let fullPrice = 0,
const myArray = [],
const myObject = {};

ကိန်းရှင်များကို အစပြုခြင်းသည် ရည်ရွယ်ထားသော အသုံးပြုမှု (နှင့် ရည်ရွယ်ထားသော ဒေတာအမျိုးအစား) ကို ပေးဆောင်သည်။


အရာဝတ္ထုများကို const ဖြင့်ကြေငြာပါ။

အရာဝတ္ထုများကို const ဖြင့်ကြေငြာခြင်းသည် မတော်တဆအမျိုးအစားပြောင်းလဲမှုကို တားဆီးနိုင်သည်-

ဥပမာ

let car = {type:"Fiat", model:"500", color:"white"};
car = "Fiat";      // Changes object to string

const car = {type:"Fiat", model:"500", color:"white"};
car = "Fiat";      // Not possible

Array များကို const ဖြင့်ကြေငြာပါ။

array များကို const ဖြင့်ကြေငြာခြင်းသည် မတော်တဆအမျိုးအစားပြောင်းလဲမှုကို တားဆီးနိုင်သည်-

ဥပမာ

let cars = ["Saab", "Volvo", "BMW"];
cars = 3;    // Changes array to number

const cars = ["Saab", "Volvo", "BMW"];
cars = 3;    // Not possible

အရာဝတ္ထုအသစ်()ကို မသုံးပါနှင့်

  • အ စားသုံး ""ပါ။new String()
  • အ စားသုံး 0ပါ။new Number()
  • အ စားသုံး falseပါ။new Boolean()
  • အ စားသုံး {}ပါ။new Object()
  • အ စားသုံး []ပါ။new Array()
  • အ စားသုံး /()/ပါ။new RegExp()
  • အ စားသုံး function (){}ပါ။new Function()

ဥပမာ

let x1 = "";             // new primitive string
let x2 = 0;              // new primitive number
let x3 = false;          // new primitive boolean
const x4 = {};           // new object
const x5 = [];           // new array object
const x6 = /()/;         // new regexp object
const x7 = function(){}; // new function object

အလိုအလျောက် အမျိုးအစားပြောင်းခြင်းကို သတိပြုပါ။

JavaScript ကို ဖြည်းညှင်းစွာ ရိုက်သည်။

ကိန်းရှင်တစ်ခုတွင် ဒေတာအမျိုးအစားအားလုံး ပါဝင်နိုင်သည်။

ကိန်းရှင်တစ်ခုသည် ၎င်း၏ဒေတာအမျိုးအစားကို ပြောင်းလဲနိုင်သည်-

ဥပမာ

let x = "Hello";     // typeof x is a string
x = 5;               // changes typeof x to a number

NaNနံပါတ်များသည် စာကြောင်းများ သို့မဟုတ် (နံပါတ်မဟုတ်) သို့ မတော်တဆ ပြောင်းသွားနိုင်သည်ကို သတိပြုပါ ။

သင်္ချာဆိုင်ရာ လုပ်ဆောင်ချက်များကို လုပ်ဆောင်သောအခါ၊ JavaScript သည် နံပါတ်များကို စာကြောင်းများအဖြစ် ပြောင်းလဲနိုင်သည်-

ဥပမာ

let x = 5 + 7;       // x.valueOf() is 12,  typeof x is a number
let x = 5 + "7";     // x.valueOf() is 57,  typeof x is a string
let x = "5" + 7;     // x.valueOf() is 57,  typeof x is a string
let x = 5 - 7;       // x.valueOf() is -2,  typeof x is a number
let x = 5 - "7";     // x.valueOf() is -2,  typeof x is a number
let x = "5" - 7;     // x.valueOf() is -2,  typeof x is a number
let x = 5 - "x";     // x.valueOf() is NaN, typeof x is a number

စာကြောင်းတစ်ကြောင်းမှ ကြိုးတစ်ချောင်းကို နုတ်ခြင်း၊ အမှားတစ်ခု မထုတ်ပေးသော်လည်း ပြန်ပေးသည် NaN(နံပါတ်မဟုတ်ပါ)။

ဥပမာ

"Hello" - "Dolly"    // returns NaN

=== နှိုင်းယှဉ်မှုကို အသုံးပြုပါ။

နှိုင်းယှဉ်မှုအော်ပရေတာ သည် ==နှိုင်းယှဉ်ခြင်းမပြုမီ (တူညီသောအမျိုးအစားများသို့) အမြဲပြောင်းသည်။

အော် ===ပရေတာသည် တန်ဖိုးများနှင့် အမျိုးအစားကို နှိုင်းယှဉ်ခိုင်းသည်-

ဥပမာ

0 == "";        // true
1 == "1";       // true
1 == true;      // true

0 === "";       // false
1 === "1";      // false
1 === true;     // false

Parameter Defaults ကိုသုံးပါ။

လွဲမှားနေသော အကြောင်းပြချက်တစ်ခုဖြင့် လုပ်ဆောင်ချက်တစ်ခုကို ခေါ်ပါက၊ ပျောက်ဆုံးနေသော အကြောင်းပြချက်၏တန်ဖိုးကို သတ်မှတ်ထားသည် undefined

သတ်မှတ်မထားသော တန်ဖိုးများသည် သင့်ကုဒ်ကို ချိုးဖျက်နိုင်သည်။ ငြင်းခုံမှုများတွင် ပုံသေတန်ဖိုးများကို သတ်မှတ်ခြင်းသည် ကောင်းသောအကျင့်တစ်ခုဖြစ်သည်။

ဥပမာ

function myFunction(x, y) {
  if (y === undefined) {
    y = 0;
  }
}

ECMAScript 2015 သည် လုပ်ဆောင်ချက် အဓိပ္ပါယ်ဖွင့်ဆိုချက်တွင် မူရင်းဘောင်များကို ခွင့်ပြုသည်-

function (a=1, b=1) { /*function code*/ }

Function Parameters တွင် လုပ်ဆောင်ချက်ပါရာမီတာများနှင့် အကြောင်းပြချက်များအကြောင်း ပိုမိုဖတ်ရှုပါ။


သင့်ခလုတ်များကို ပုံသေများဖြင့် အဆုံးသတ်ပါ။

switchသင့် ထုတ်ပြန်ချက်များကို အမြဲတမ်းတစ်ခုနှင့် အဆုံးသတ်ပါ defaultမလိုအပ်ဘူးလို့ ထင်နေရင်တောင်။

ဥပမာ

switch (new Date().getDay()) {
  case 0:
    day = "Sunday";
    break;
  case 1:
    day = "Monday";
    break;
  case 2:
    day = "Tuesday";
    break;
  case 3:
    day = "Wednesday";
    break;
  case 4:
    day = "Thursday";
    break;
  case 5:
    day = "Friday";
    break;
  case 6:
    day = "Saturday";
    break;
  default:
    day = "Unknown";
}

အရာဝတ္ထုများအဖြစ် နံပါတ်၊ စာကြောင်းနှင့် Boolean ကို ရှောင်ကြဉ်ပါ။

နံပါတ်များ၊ စာကြောင်းများ သို့မဟုတ် ဘူလီယံများကို မူလတန်ဖိုးများအဖြစ် အမြဲတမ်း ဆက်ဆံပါ။ အရာဝတ္ထုများကဲ့သို့မဟုတ်ပေ။

ဤအမျိုးအစားများကို အရာဝတ္ထုများအဖြစ် ကြေညာခြင်း၊ လည်ပတ်မှုအရှိန်ကို နှေးကွေးစေပြီး ဆိုးရွားသော ဘေးထွက်ဆိုးကျိုးများကို ဖြစ်ပေါ်စေသည်-

ဥပမာ

let x = "John";             
let y = new String("John");
(x === y) // is false because x is a string and y is an object.

သို့မဟုတ် ပိုဆိုးသည်-

ဥပမာ

let x = new String("John");             
let y = new String("John");
(x == y) // is false because you cannot compare objects.

eval() ကို ရှောင်ပါ

စာသားကို eval()ကုဒ်အဖြစ် လုပ်ဆောင်ရန် လုပ်ဆောင်ချက်ကို အသုံးပြုသည်။ ကိစ္စတိုင်းလိုလိုတွင်၊ ၎င်းကိုအသုံးပြုရန်မလိုအပ်ပါ။

၎င်းသည် မတရားကုဒ်ကို လုပ်ဆောင်ရန် ခွင့်ပြုသောကြောင့်၊ ၎င်းသည် လုံခြုံရေးပြဿနာကိုလည်း ကိုယ်စားပြုသည်။