Const JavaScript

ECMAScript 2015:

ECMAScript 2015 ໄດ້ນຳຂາຍຄຳສັ່ງທີ່ສໍາຄັນສອງຄຳສັ່ງໃໝ່ຂອງ JavaScript:let ແລະ: const.

ໄດ້ຮັບ const ຄວາມພາບທີ່ຖືກສ້າງ: let ຄວາມພາບທີ່ຖືກສ້າງ:

ຄວາມຄິດ

const PI = 3.141592653589793;
PI = 3.14;      // ຈະມີຄວາມຜິດ:
PI = PI + 10;   // ຈະມີຄວາມຜິດ:

ທົດລອງດ້ວຍຕົວຕົນ

ບາງ:

ຄວາມພາບທີ່ຄ້າຍຄືກັນ:ບາງ:ໃນ: const ຄວາມພາບທີ່ຖືກຖະແຫຼງ: let ຄວາມຄ້າຍຄືກັນ:

ໃນບັນທັດນີ້ x ແມ່ນຖືກຖະແຫຼງໃນບາງ:

ຄວາມຄິດ

var x = 10;
// ບາງທີ່ນີ້ x ແມ່ນ 10:
{ 
  const x = 6;
  // ບາງທີ່ນີ້ x ແມ່ນ 6:
}
// ບາງທີ່ນີ້ x ແມ່ນ 10:

ທົດລອງດ້ວຍຕົວຕົນ

ໃນວັນນີ້: Let JavaScript ທ່ານຈະຮຽນຫຼາຍກວ່າການຮຽນໃນຫຼັກສາດ:

ໃນການຖະແຫຼງ:

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";