JavaScript const

块作用域

var x = 10;
//此处 x 为 10
{
    const x = 6;
    //此处 x 为 6
}
//此处 x 为 10

在声明时赋值

const PI;
PI = 5134525352;//不正确

const PI = 2.3532542352;//正确

原始值不可改变

const PI = 3.354254524;
PI = 4324;//ERROR

常量对象可以更改

const car = {name:"yao", age:14, height:170};
car.name = 'li';//可以更改属性
car.nu = 1;//可以添加属性

无法重新为常量对象赋值

const car = {name:"yao", age:14, height:170};
car = {name:'li', age:3, height:160};//ERROR

常量数组可以更改

const cars = ['Audi', 'BMW', 'porsche'];
cars[0] = 'Honda';//可以更改元素
cars.push('Volvo');//可以添加元素

无法重新为常量数组赋值

const cars = ['Audi', 'BMW', 'porsche'];
car = ['Honda', 'Volvo', 'BMW'];//ERROR

重新声明

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

var x = 2;//允许
const x = 2;//不允许
{
    let x = 2;//允许
    const x = 2;//不允许
}

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

const x = 2;//允许
const x = 3;//不允许
x = 3;//不允许
var = 3;//不允许
let = 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;//允许
}

提升

通过const定义的变量不会被提升到顶端

const变量不能在声明之前使用

carName = 'Volvo';
//不可以在此处使用carName
const carName = 'Volvo';
版权声明:本文为YlMXY原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/YlMXY/p/16651992.html