ဂျပ်တိုး အမှား

ဒီလုံးတွင် အများဆုံး အမှားများ ကို ကြည့်ပါ

မငြင်းပေါ်သည်

ပုဂ္ဂိုလ်ကြီး if အင်တိုက် အသုံးပြုခြင်း တွင် မငြင်းပေါ်သည်=)ကို အတူတူ နှင့် သဘောတူ အတူတူ အရင်းအမြစ် အကြောင်း=====),JavaScript ပရိုဂရမ် အတွက် မငြင်းပေါ်သော ရလဒ်များ ပေါ်ပေါက်နိုင်ပါ

အကြောင်း if အင်တိုက် အသုံးပြုခြင်း ပြန်လည်ကြေညာသည် false(အလို့ငှာ မမှန်ပါ)သည် x သည် 10 မဟုတ်သောကြောင့်

var x = 0;
if (x == 10) 

ကိုယ်တိုင် စမ်းသပ်ပါ

အကြောင်း if အင်တိုက် အသုံးပြုခြင်း ပြန်လည်ကြေညာသည် true(အလို့ငှာ မမှန်ပါ)သည် 10 သည် true ဖြစ်သောကြောင့်

var x = 0;
if (x = 10) 

ကိုယ်တိုင် စမ်းသပ်ပါ

အကြောင်း if အင်တိုက် အသုံးပြုခြင်း ပြန်လည်ကြေညာသည် false(အလို့ငှာ မမှန်ပါ)သည် 0 သည် false ဖြစ်သောကြောင့်

var x = 0;
if (x = 0) 

ကိုယ်တိုင် စမ်းသပ်ပါ

လက်ခံထားခြင်း သည် လက်ခံထားသော အရင်းအမြစ် ကို ပြန်လည်ကြေညာသည်

များသော အတူတူ စုံစမ်းမှု

အရင်းအမြစ် အတူတူသည် အရင်းအမြစ် အကြောင်း if အင်တိုက် အသုံးပြုခြင်း ပြန်လည်ကြေညာသည် true:

var x = 10;
var y = "10";
if (x == y) 

ကိုယ်တိုင် စမ်းသပ်ပါ

အရင်းအမြစ် တူညီသည် သို့မဟုတ် မတူညီသည် အရင်းအမြစ် အကြောင်း if အင်တိုက် အသုံးပြုခြင်း ပြန်လည်ကြေညာသည် false:

var x = 10;
var y = "10";
if (x === y) 

ကိုယ်တိုင် စမ်းသပ်ပါ

အမှားနှစ်ခုတွင် အရင်းအမြစ် ကို မသိခဲ့ပါ switch အင်တိုက် အသုံးပြုခြင်း

အကြောင်း switch အင်တိုက် ပြသသည်

var x = 10;
switch(x) {
    case 10: alert("Hello");
}

ကိုယ်တိုင် စမ်းသပ်ပါ

အကြောင်း switch အင်တိုက် ပြသသည်မပြောင်းလဲသည်

var x = 10;
switch(x) {
    case "10": alert("Hello");
}

ကိုယ်တိုင် စမ်းသပ်ပါ

စက္ခု ပေါင်းထား နှင့် ဆက်ကြည့်ခြင်း

ပေါင်းထားအသုံးပြု၍စက္ခု

ဆက်ကြည့်ခြင်းအသုံးပြု၍စက္ခု

ဂျပန်စကားအရင်းအမြစ်တွင် ဒါများသည် တူညီသော + တုံ့ပြန်သူ

ထို့ကြောင့် စက္ခု အသုံးပြု၍ ပေါင်းထားလျှင် နှင့် စက္ခု အသုံးပြု၍ ပေါင်းထားလျှင် ရလဒ်သည် မတူညီပေ

var x = 10 + 5;          // x တွင် ရလဒ်သည် 15 ဖြစ်သည်
var x = 10 + "5";         // x တွင် ရလဒ်သည် "105" ဖြစ်သည်

ကိုယ်တိုင် စမ်းသပ်ပါ

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

var x = 10;
var y = 5;
var z = x + y;            // z တွင် ရလဒ်သည် 15 ဖြစ်သည်
var x = 10;
var y = "5";
var z =  x + y;            // z တွင် ရလဒ်သည် "105" ဖြစ်သည်

ကိုယ်တိုင် စမ်းသပ်ပါ

ကွဲပြားသော ရောင်ခြည်

ဂျပန်စကားအရင်းအမြစ်တွင် နေရာများသည် 64 ပုံတန်း ပေါ်တွင် သတင်းကို ကျန်ထားသည်浮点数(Floats)

所有编程语言,包括 JavaScript,都存在处理浮点值的困难:

var x = 0.1;
var y = 0.2;
var z = x + y             // z 中的结果并不是 0.3

ကိုယ်တိုင် စမ်းသပ်ပါ

为了解决上面的问题,请使用乘除运算:

အမှတ်အသား

var z = (x * 10 + y * 10) / 10;       // z 中的结果将是 0.3

ကိုယ်တိုင် စမ်းသပ်ပါ

对 JavaScript 字符串换行

JavaScript 允许您把一条语句换行为两行:

အမှတ် 1

var x =
"Hello World!";

ကိုယ်တိုင် စမ်းသပ်ပါ

但是,在字符串中间来换行是不对的:

အမှတ် 2

var x = "Hello
World!";

ကိုယ်တိုင် စမ်းသပ်ပါ

如果必须在字符串中换行,则必须使用反斜杠:

အမှတ် 3

var x = "Hello \
World!";

ကိုယ်တိုင် စမ်းသပ်ပါ

错位的分号

因为一个错误的分号,此代码块无论 x 的值如何都会执行:

if (x == 19);
{
     // code block
}

ကိုယ်တိုင် စမ်းသပ်ပါ

return ဖော်ပြချက် ကို အပတ်လည်း ပြောင်းလဲစေခြင်း

အဆိုပါ ဖော်ပြချက် က အပတ်လည်း ပြောင်းလဲစေခြင်း ဖြင့် အခြေအနေ ဖြစ်သည်

အဆိုပါ အခြေအနေ ကြောင့် အဆိုပါ အမှတ် 1 နှင့် အမှတ် 2 ပုံမှာ အတူ အကြောင်းအရာ ပြန်လည် ပြောင်းလဲစေခြင်း ဖြင့် ပြန်လည် ပြောင်းလဲစေသည်

အမှတ် 1

function myFunction(a) {
    var power = 10  
    return a * power
}

ကိုယ်တိုင် စမ်းသပ်ပါ

အမှတ် 2

function myFunction(a) {
    var power = 10;
    return a * power;
}

ကိုယ်တိုင် စမ်းသပ်ပါ

JavaScript က ဖော်ပြချက် ကို အပတ်လည်း ပြောင်းလဲစေခြင်း ကို ခွင့်ပြုသည်

အဆိုပါ အခြေအနေ ကြောင့် အဆိုပါ အမှတ် 3 က လည်း အတူ အကြောင်းအရာ ပြန်လည် ပြောင်းလဲစေခြင်း ဖြင့် ပြန်လည် ပြောင်းလဲစေသည်

အမှတ် 3

function myFunction(a) {
    var
    power = 10;  
    return a * power;
}

ကိုယ်တိုင် စမ်းသပ်ပါ

သို့သော် အဆိုပါ return ဖော်ပြချက် ကို အပတ်လည်း ပြောင်းလဲသည် အခြေအနေ ဖြစ်သည်

အမှတ် 4

function myFunction(a) {
    var
    power = 10;  
    return
    a * power;
}

ကိုယ်တိုင် စမ်းသပ်ပါ

အဆိုပါ ဖော်ပြချက် က ပြန်လည် ပြောင်းလဲစေခြင်း ဖြင့် ပြန်လည် ပြောင်းလဲစေသည် undefined!

အဆိုပါ အခြေအနေ ကြောင့် ဖြစ်သည်။ သို့သော် JavaScript က သင့် ဖြစ်သော အခြေအနေ ကို

အမှတ် 5

function myFunction(a) {
     var
    power = 10;  
    return;
    a * power;
}

ကိုယ်တိုင် စမ်းသပ်ပါ

ဖော်ပြ

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

var

JavaScript က အဆိုပါ ဖော်ပြချက် ကို နောက်ပိုင်းလောင်း တွင် ဖြစ်ပေါ်လာစေခြင်း ဖြင့် ဖော်ပြချက် ကို ပြောင်းလဲစေသည်

power = 10;

သို့သော် အဆိုပါ ဖော်ပြချက် က ပြောင်းလဲသော ဖော်ပြချက် ဖြစ်သည်

return

JavaScript က အဆိုပါ ဖော်ပြချက် ကို အပတ်လည်း ပြောင်းလဲစေခြင်း ဖြင့် ဖော်ပြချက် ကို ပိတ်စေသည်

return;

အဆိုပါ အခြေအနေ ဖြစ်ပေါ်လာခြင်း ကြောင့် ဖြစ်သည်။ သို့သော် အဆိုပါ JavaScript တွင် ဖော်ပြချက် ကို ပိတ်စေခြင်း အားဖြင့် ဖော်ပြချက် ကို ပိတ်စေခြင်း မပြောင်းလဲစေရန်

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

ထို့ကြောင့် အဆိုပါ ဖော်ပြချက် ကို မပြောင်းလဲစေရန် မပြောင်းလဲစေရန် return ဖော်ပြချက် အပတ်လည်း ပြောင်းလဲသည်

ကို အမှတ်စက္ခု အားဖြင့် အော်ဂန်း ကို ဝင်ရောက်သုံးနိုင်သည်

很多编程语言支持带有命名索引的数组。

အမည်ဖြင့် အစားပြုအရာများ ပါဝင်သော စကေးကြားအုပ် သည် ယူကျင် အစားပြုအရာများ (သို့မဟုတ် အကြီးအကျယ်) ဟု ခေါ်ဆိုပါသည်

ဟော်ဒီ လုပ်ဆောင်ခြင်း မပါအမည်ဖြင့် အစားပြုအရာများ ပါဝင်သော စကေးကြားအုပ်

JavaScript တွင်စကေးကြားအုပ်သုံးပြီးနှစ်ခုတန်းအစား:

အမှတ်အသား

var person = [];
person[0] = "Bill";
person[1] = "Gates";
person[2] = 46;
var x = person.length;          // person.length သည် 3 ပါဝင်လာပါသည်
var y = person[0];              // person[0] သည် "Bill" ပါဝင်လာပါသည်

ကိုယ်တိုင် စမ်းသပ်ပါ

JavaScript တွင်ကိုယ်စားပြုသူသုံးပြီးအမည်ဖြင့် အစားပြုအရာများ

အမည်ဖြင့် အစားပြုအရာများ သုံးလျှင် စကေးကြားအုပ် ကို ဖြတ်သန့် အစားပြုသည့်အတွက် JavaScript သည် စကေးကြားအုပ် ကို အခြေခံ ကိုယ်စားပြုသူ အဖြစ် အတည်ပြုလိမ့်မည်

အဆက်မပြတ် အစားပြုအရာများ ပြီးနောက် စကေးကြားအုပ် စနစ်များ သို့မဟုတ် အချက်အလက် အတွက် အပျက်အစီး သို့မဟုတ် အမှန်ကန်သော ရလဒ် ပေါ်ပေါက်လာပါသည်:

အမှတ်အသား

var person = [];
person["firstName"] = "Bill";
person["lastName"] = "Gates";
person["age"] = 46;
var x = person.length;         // person.length သည် 0 ပါဝင်လာပါသည်
var y = person[0];              // person[0] သည် undefined ပါဝင်လာပါသည်

ကိုယ်တိုင် စမ်းသပ်ပါ

အစားပြုအရာများ အတွက် ကြားချိန်း ကို အဆုံးဖြတ်သည်

ECMAScript 5 တွင် ကိုယ်စားပြုသူ နှင့် စကေးကြားအုပ် အစားပြုအရာများ အတွက် နောက်ပါးဘက် ကြားချိန်း အဖြစ် သဘောတူချက်ရှိသည်။

ကိုယ်စားပြုသူ အမျိုးအစား:

person = {firstName:"Bill", lastName:"Gates", age:62,};

စကေးကြားအုပ်:

points = [35, 450, 2, 7, 30, 16,];

သတိပေးပါ!!

Internet Explorer 8 သည် ပျက်စီးလာပါသည်။

JSON သည် နောက်ပါးဘက် ကြားချိန်း မပါဘဲဖြစ်စေရန် ခွင့်ပြုသည်။

JSON:

person = {firstName:"Bill", lastName:"Gates", age:62};

JSON:

points = [35, 450, 2, 7, 30, 16];

Undefined သည် Null မဟုတ်

JavaScript ကိုယ်စားပြုသူ၊ ဘဒ္ဒန္တာ၊ အချက်အလက် နှင့် စနစ် အမျိုးအစား သည် အပျက်အစီး ဖြစ်နိုင်ပါသည်။

ရှိသော JavaScript ကိုယ်စားပြုသူ အရာများ အတွက် ဖြစ်နိုင်သည်: null

ဒါဟာ ကိုယ်စားပြုသူ မမြတ်တော့ စစ်ဆေးရန် ပို၍ ကြက်သွေးလာနိုင်ပါသည်။

ကိုယ်စားပြုသူ အမျိုးအစား သည် အမျိုးအစား အဖြစ် စစ်ဆေးနိုင်သည်: undefined،ကိုယ်စားပြုသူ ရှိသလား စစ်ဆေးရန်:

အမှတ်အသား

if (typeof myObj === "undefined")

ကိုယ်တိုင် စမ်းသပ်ပါ

但是您无法测试对象是否为 null,因为如果对象未定义,将抛出错误:

မဟုတ်

if (myObj === null)

要解决此问题,必须测试对象是否为 nullမဟုတ် အခြေခံ ကြောင်းကျည်း ဖြစ်သည်။

သို့သော် အကြောင်းကျည်း ဖြစ်သည်ဟု

မဟုတ်

if (myObj !== null && typeof myObj !== "undefined")

အခြေခံ ကြောင်းကျည်း သို့ ရန် အခြေခံ ကြောင်းကျည်း စမ်းသပ်ပါ

ကိုယ့်အတွက်

if (typeof myObj !== "undefined" && myObj !== null)

ကိုယ်တိုင် စမ်းသပ်ပါ

အပေါ်

ဟော်ဒီ အမှတ်အသားသို့သော် ဂျပ်တို့ပေါင်း

အခြား အစီအစဉ် ဘာသာစကား အပေါ်လည်း မဟုတ်

ယခု အကြောင်းကျည်း ဖြစ်သည်ဟု undefined၊ အခြေခံ အကြောင်းကျည်း ဂျပ်တို့ပေါင်း သူ အပျက်အစီးများမှာ:

အမှတ်အသား

for (var i = 0; i < 10; i++) {
  // ဂုဏ်ထူး
}
return i;

ကိုယ်တိုင် စမ်းသပ်ပါ