JavaScript Const

ECMAScript 2015

ES2015 က အခွင့်အရေး အတ္ထုပါ နှစ် ပါး အသစ် တက်ရောက်ခဲ့သည်:let နှင့် constအခွင့်အရေး

အမှုသိမ်း const အခွင့်အရေး ဖော်ထုတ် ပြီး let အခွင့်အရေး နှင့် အတူ အမြတ်တူပါသည် သော်လည်း အပြင်သို့ ပြန်လည် ပေးချင်း လုပ် မရတာဘဲ:

အကျိုးဆက်

const PI = 3.141592653589793;
PI = 3.14;      // အမှား ဖြစ်ပါတယ်
PI = PI + 10;   // အမှား ဖြစ်ပါတယ်

မင်းကိုယ်ဖြင့် ကြိုးစားပါ

ဗဟုသုတ အခွင့်အရေး

ဗဟုသုတ အခွင့်အရေးဗဟုသုတ အခွင့်အရေးဗဟုသုတ အခွင့်အရေး တွင် const ဖော်ထုတ် ပြီး let အမှုန့် အတူ

ဤ အခါ အမှုန့် x သည် ဗဟုသုတ အခွင့်အရေး တွင် ဖော်ထုတ် ပြီး ဗဟုသုတ အခွင့်အရေး အပြင် ဖော်ထုတ် ပြီး အကြောင်းသတ္တု x နှင့် အတူ အမြတ်တူပါသည်:

အကျိုးဆက်

var x = 10;
// ဤ အခါ အကြောင်းသတ္တု x သည် 10 ဖြစ်ပါသည်
{ 
  const x = 6;
  // ဤ အခါ အကြောင်းသတ္တု x သည် 6 ဖြစ်ပါသည်
}
// ဤ အခါ အကြောင်းသတ္တု x သည် 10 ဖြစ်ပါသည်

မင်းကိုယ်ဖြင့် ကြိုးစားပါ

အရာတစ်ခု တွင်: JavaScript Let ဗဟုသုတ အခွင့်အရေး ကို လေးလား သိနိုင်ပါသည်။

ဖော်ထုတ် စဉ် ပေးချင်း

JavaScript const အမှုန့် ကို ဖော်ထုတ် စဉ် ပေးချင်း လုပ်ပါ:

မမှန်

const PI;
PI = 3.14159265359;

ကိုယ့်ဘား

const PI = 3.14159265359;

အခွင့်အရေး မဟုတ်

အကြောင်းသတ္တု const အကျယ်အဝန်း အားဖြင့် ကျယ်ပါတယ်。

အခွင့်အရေး အတ္ထုပါ ကို အသုံးပြုခြင်း မရှိပါဘဲ၊ အခွင့်အရေး ကို အရင်းအမြစ် ကို အသုံးပြုခြင်း ဖြစ်သည်။

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

အရင်းအမြစ်

အခွင့်အရေး အရင်းအမြစ် ကို ပေးချင်း ပြီးနောက် အရင်းအမြစ် ပြင်ဆင် မရတာဘဲ:

အကျိုးဆက်

const PI = 3.141592653589793;
PI = 3.14;      // အမှား ဖြစ်ပါတယ်
PI = PI + 10;   // အမှား ဖြစ်ပါတယ်

မင်းကိုယ်ဖြင့် ကြိုးစားပါ

အခွင့်အရေး အရင်းအမြစ် ပြင်ဆင် နိုင်ပါသည်:

အခွင့်အရေး အရင်းအမြစ် ကို ပြင်ဆင် နိုင်ပါသည်:

အကျိုးဆက်

// ကို const အရင်းအမြစ် ဖန်တီး နိုင်ပါသည်:
const car = {type:"porsche", model:"911", color:"Black"};
// ကို ပြင်ဆင် နိုင်ပါသည်:
car.color = "White";
// 您可以添加属性:
car.owner = "Bill";

မင်းကိုယ်ဖြင့် ကြိုးစားပါ

但是您无法重新为常量对象赋值:

အကျိုးဆက်

const car = {type:"porsche", model:"911", color:"Black"};
car = {type:"Volvo", model:"XC60", color:"White"};    // ERROR

မင်းကိုယ်ဖြင့် ကြိုးစားပါ

常量数组可以更改

您可以更改常量数组的元素:

အကျိုးဆက်

// 您可以创建常量数组:
const cars = ["Audi", "BMW", "porsche"];
// 您可以更改元素:
cars[0] = "Honda";
// 您可以添加元素:
cars.push("Volvo");

မင်းကိုယ်ဖြင့် ကြိုးစားပါ

但是您无法重新为常量数组赋值:

အကျိုးဆက်

const cars = ["Audi", "BMW", "porsche"];
cars = ["Honda", "Toyota", "Volvo"];    // ERROR

မင်းကိုယ်ဖြင့် ကြိုးစားပါ

浏览器支持

Internet Explorer 10 或更早版本不支持 const 关键词。

下表定义了第一个完全支持 const 关键词的浏览器版本:

Chrome 49 IE / Edge 11 Firefox 36 Safari 10 Opera 36
2016 年 3 月 2013 年 10 月 2015 年 2 月 2016 年 9 月 2016 年 3 月

重新声明

在程序中的任何位置都允许重新声明 JavaScript var 变量:

အကျိုးဆက်

var x = 2;    //  ခွင့်ပြု
var x = 3;    //  ခွင့်ပြု
x = 4;        //  ခွင့်ပြု

在同一作用域或块中,不允许将已有的 varlet 变量重新声明或重新赋值给 const

အကျိုးဆက်

var x = 2;         // ခွင့်ပြု
const x = 2;       // မမေးမြန်း
{
  let x = 2;     // ခွင့်ပြု
  const x = 2;   // မမေးမြန်း
}

在同一作用域或块中,为已有的 const 变量重新声明声明或赋值是不允许的:

အကျိုးဆက်

const x = 2;       // 允许
const x = 3;       // မမေးမြန်း
x = 3;             // မမေးမြန်း
var x = 3;         // မမေးမြန်း
let x = 3;         // မမေးမြန်း
{
  const x = 2;   // 允许
  const x = 3;   // 不允许
  x = 3;         // 不允许
  var x = 3;     // 不允许
  let x = 3;     // 不允许
}

在另外的作用域或块中重新声明 const 是允许的:

အကျိုးဆက်

const x = 2;       // 允许
{
  const x = 3;   // 允许
}
{
  const x = 4;   // 允许
}

提升

အမှုသိမ်း var 定义的变量会被提升到顶端。如果您不了解什么是提升(Hoisting),请学习提升这一章。

သင်သည် var အမှုအာရီရီ ဖော်ထုတ်ခင် အသုံးပြုနိုင်ပါ

အကျိုးဆက်

carName = "Volvo";    // သင်သည် ဒါတွင် carName ကို အသုံးပြုခြင်း ပြုနိုင်ပါ
var carName;

မင်းကိုယ်ဖြင့် ကြိုးစားပါ

အမှုသိမ်း const ဖော်ထုတ်ထားသော အမှုအာရီရီ မှာ အကောင်းကျသော ကန့်ကွက်သည်

const အမှုအာရီရီ ကို ဖော်ထုတ်ခင် အသုံးပြုခြင်း မပြုရ

အကျိုးဆက်

carName = "Volvo";    // သင်သည် ဒါတွင် carName ကို အသုံးပြုခြင်း မပြုရ
const carName = "Volvo";