JavaScript Const

ECMAScript 2015

ES2015 ÒýÈëÁËÁ½¸öÖØÒªµÄ JavaScript йؼü´Ê£º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 ÓÐÒ»¶¨µÄÎóµ¼ÐÔ¡£

ËüûÓж¨Òå³£Á¿Öµ¡£Ëü¶¨ÒåÁ˶ÔÖµµÄ³£Á¿ÒýÓá£

Òò´Ë£¬ÎÒÃDz»Äܸü¸Ä³£Á¿Ô­Ê¼Öµ£¬µ«ÎÒÃÇ¿ÉÒÔ¸ü¸Ä³£Á¿¶ÔÏóµÄÊôÐÔ¡£

ԭʼֵ

Èç¹ûÎÒÃǽ«Ò»¸öԭʼֵ¸³¸ø³£Á¿£¬ÎÒÃǾͲ»Äܸıäԭʼֵ£º

ʵÀý

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;        //  ÔÊÐí

ÔÚͬһ×÷ÓÃÓò»ò¿éÖУ¬²»ÔÊÐí½«ÒÑÓÐµÄ var »ò let ±äÁ¿ÖØÐÂÉùÃ÷»òÖØÐ¸³Öµ¸ø const£º

ʵÀý

var x = 2;         // ÔÊÐí
const x = 2;       // ²»ÔÊÐí
{
  let x = 2;     // ÔÊÐí
  const x = 2;   // ²»ÔÊÐí
}

ÔÚͬһ×÷ÓÃÓò»ò¿éÖУ¬ÎªÒÑÓÐµÄ const ±äÁ¿ÖØÐÂÉùÃ÷ÉùÃ÷»ò¸³ÖµÊDz»ÔÊÐíµÄ£º

ʵÀý

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