ES6之新增const命令使用方法


hi,我又回來了,今天學習一下const命令。

聲明一個常量

const聲明一個只讀常量,一旦聲明,常量的值便不可改變。

例子如下:

const food = 12;
food = 23; // Uncaught TypeError: Assignment to constant variable.

還可以聲明一個變量

const可以聲明一個變量,聲明以后,必須初始化,否則變錯。

例子如下:

const food; // Uncaught SyntaxError: Missing initializer in const declaration

其他特性

constlet有許多相似點:

  • 只在其聲明的塊級作用域中有效;
  • 不存在作用域提升,是暫時性死區,必須先聲明,后使用;
  • 不能重復聲明,否則會報錯

例子如下:

//1.只在其聲明的塊級作用域中有效
{
    const food = 'apple';
}
console.log(food); // Uncaught ReferenceError: food is not defined

//2.暫時性死區
{
    console.log(HI); // Uncaught ReferenceError: HI is not defined
    const HI = 'hello';
}

//3.不能重復聲明
{
    const food = 'apple';
    const food = 'orange'; // Uncaught SyntaxError: Identifier 'food' has already been declared
}

const的聲明變量的本質

const聲明的變量,並不是說變量的值不能改變,而是對於變量指向那個的內存地址所保存的數據不得改動。

  • 如果聲明的變量是基本數據,那值就保存在變量指向的那個內存地址,可以理解為對於常量。

  • 但是如果聲明的變量是一個引用數據類型,那只能保證變量保存的指針地址不變,至於變量里面的屬性和值,就不能保證了。

注意:如果把這個聲明的引用數據類型變量指向另一個對象,就會報錯。

例如:


// 常量是一個對象
const About = {};
About.us = 'usb';
About.ua = 'usc';
console.log(About); // {us: "usb", ua: "usc"}
About = {}; // Uncaught TypeError: Assignment to constant variable.

//常量是一個數組
const BALL = [];
BALL.length = 2;
BALL[0] = 'haha';
BALL = []; // Uncaught TypeError: Assignment to constant variable.

補充:聲明變量的方法

  • ES5的varfunction命令。
  • ES6的letconst命令。

最后總結

其實,const也不是很難,只要你細心,就會發現非常的簡單。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM