ဂျေဟိုပ် အကောင်းဆုံး လက္ခဏာ
- အရှေ့လိုက် စာရင်း JS အုပ်ချုပ်စက် ဆိုင်ရာ ဆိုင်းဖြည်း
- နောက်လိုက် စာရင်း JS အမှား
请避免全局变量、new
、==
、eval()
始终声明局部变量
所有在函数中使用的变量应该被声明为局部变量。
局部变量必须通过 var 关键词来声明,否则它们将变成全局变量。
strict mode သည် မပြောင်းလဲဖို့ အသုံးပြုမှုများ ကို ခွင့်မပြု
အထိပ်တွင် တည်ဆောက်
အကောင်းဆုံး ကုယျစက္ခ တစ်ခု မှာ အားလုံးသော တည်ဆောက်မှုများ ကို အထိပ်သို့ တည်ဆောက်ရန် ဖြစ်
这么做的好处是:
- အောင်းရေး ကောင်းသော ကုယျစက္ခ
- အရာသိပ်များ ရှာဖွေရန် ကောင်းမွန်သော နေရာ
- အသုံးပြုမှုများ မပြောင်းလဲဖို့ အနှစ်းနှစ်မျိုး ချင်း ကြောင်း ကာကွယ်
- လိုင်းပြီးမှ အသုံးပြုမှုများ မပြောင်းလဲဖို့ ပါ
// အထိပ်တွင် တည်ဆောက် var firstName, lastName, price, discount, fullPrice; // နောက်ထပ်အသုံး firstName = "Bill"; lastName = "Gates"; price = 19.90; discount = 0.10; fullPrice = price * 100 / discount;
လည်း နှင့် စပ်လျဉ်း၍ အသုံးပြုနိုင်
// အထိပ်တွင် တည်ဆောက် var i; // နောက်ထပ်အသုံး for (i = 0; i < 5; i++) {
ပုံစံအရ JavaScript သည် အားလုံးသော အသုံးပြုမှုများကို အထိပ်သို့ ပြောင်းလဲကြောင်း JavaScript hoisting
စတင်တည်ဆောက်ပုံစံ
在您声明变量时对其进行初始化是个好习惯。
这么做的好处是:
- 更整洁的代码
- 在单独的位置来初始化变量
- 避免未定义值
// 在开头进行声明和初始化 var firstName = "", lastName = "", price = 0, discount = 0, fullPrice = 0, myArray = [], myObject = {};
变量初始化使我们能够了解预期用途和预期的数据类型。
请不要声明数值、字符串或布尔对象
请始终将数值、字符串或布尔值视作原始值。而非对象。
如果把这些类型声明为对象,会拖慢执行速度,并产生讨厌的副作用:
实例
var x = "Bill"; var y = new String("Bill"); (x === y) // 结果为 false,因为 x 是字符串,而 y 是对象。
或者甚至更糟:
实例
var x = new String("Bill"); var y = new String("Bill"); (x == y) // 结果是 false,因为你无法比较对象。
请勿使用 new Object()
- 请使用 {} 来代替 new Object()
- 请使用 "" 来代替 new String()
- 请使用 0 来代替 new Number()
- 请使用 false 来代替 new Boolean()
- 请使用 [] 来代替 new Array()
- 请使用 /()/ 来代替 new RegExp()
- 请使用 function (){}来代替 new Function()
实例
var x1 = {}; // 新对象 var x2 = ""; // 新的原始字符串值 var x3 = 0; // 新的原始数值 var x4 = false; // 新的原始布尔值 var x5 = []; // 新的数组对象 var x6 = /()/; // 新的正则表达式 var x7 = function(){}; // 新的函数对象
意识到自动类型转换
သင် သေချာ နှုတ်ဆိုင်း အမှတ် သည် လျှပ်စ်အား အစီအစဉ် ချင်း သို့ အသုံးပြုခြင်း ကို သိကြပါ။ NaN
(Not a Number)
ဂျက်တိုးစ် သည် အောက်ဆစ် အမျိုးအစား ကို ဖြစ်စေသည်။ လျှပ်စ်အား အမျိုးအစား မျိုးမျိုး ကို ပါဝင်စေနိုင် ပြီး လျှပ်စ်အား အမျိုးအစား ပြောင်းလဲကာ ဖြစ်စေနိုင်သည်။
实例
var x = "Hello"; // typeof x 为字符串 x = 5; // 把 typeof x 更改为数值
如果进行数学运算,JavaScript 能够将数值转换为字符串:
实例
var x = 5 + 7; // x.valueOf() 是 12, typeof x 是数值 var x = 5 + "7"; // x.valueOf() 是 57, typeof x 是字符串 var x = "5" + 7; // x.valueOf() 是 57, typeof x 是字符串 var x = 5 - 7; // x.valueOf() 是 -2, typeof x 是数值 var x = 5 - "7"; // x.valueOf() 是 -2, typeof x 是数值 var x = "5" - 7; // x.valueOf() 是 -2, typeof x 是数值 var x = 5 - "x"; // x.valueOf() 是 NaN, typeof x 是数值
用字符串减去字符串,不会产生错误而是返回 NaN
(Not a Number):
实例
"Hello" - "Dolly" // မြောက်သော အတ္ထုပါ မရှိသည်
=== တိကျစားပိုင်း သုံးပြီ
==
တိကျစားပိုင်း သည် တိကျစားပိုင်း ပြုလုပ်မီ အမျိုးအစား ပြောင်းလဲခြင်း ပြုလုပ်သည် (အမျိုးအစား တူညီစေရန်)
==
တိကျစားပိုင်း က အတ္ထုပါ နှင့် အမျိုးအစား ကို တိကျစားပိုင်း ပြုလုပ်သည်:
实例
0 == ""; // true 1 == "1"; // true 1 == true; // true 0 === ""; // false 1 === "1"; // false 1 === true; // false
Parameter Defaults
အမှုကို ပြောင်းလဲပြီး အခြား အပ်နှင်းချက် မရှိသေးပါက အပ်နှင်းချက် ကို ပြောင်းလဲခြင်း ပြုလုပ်သည်။ undefined
。
undefined
အတ္ထုပါ ကို သုံးပြီး သူ၏ ကိုယ်စားပြုခြင်း သည် သူ၏ ကိုယ်စားပြုခြင်း ကို ဖျက်ဆီးနိုင်သည်။ သဘောတူ သည် အပ်နှင်းချက် အတွက် မိမိက အတ္ထုပါ ကို ဖုံးဖြင့် ရန် အကြောင်းအခက် တစ်ခု ဖြစ်သည်。
实例
function myFunction(x, y) { if (y မရှိသေးသည်) { y = 0; } }
请在函数参数这一章阅读更多有关函数参数的内容。
用 default 来结束 switch
请使用 default
来结束您的 switch
语句。即使您认为没有这个必要。
实例
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"; }
避免使用 eval()
eval()
函数用于将文本作为代码来允许。在几乎所有情况下,都没有必要使用它。
အလိုအရ အလွန်အားရှိသော ကုန်းအုပ်ချုပ်စက် ကို ခွင့်ပြုသည့် အခြေခံ ပြဿဒ် ကြောင့် ဘေးဒဏ် ကို မတွေ့နိုင်ပါ။
- အရှေ့လိုက် စာရင်း JS အုပ်ချုပ်စက် ဆိုင်ရာ ဆိုင်းဖြည်း
- နောက်လိုက် စာရင်း JS အမှား