浅谈let和const的区别

let和const的区别

let和const只在声明的块极作用域内有效。

  1. let声明的变量可以被修改,值和类型都可以修改
  2. const声明的变量不可被修改,一旦声明,必须进行初始化。
    const a;//会报错,因为a只声明没有赋值;
    
    
    
    const b = 123;
    b=456;//会报错,因为const声明的变量不能被修改
    

      

    如果声明的是复合类型的变量:数组或者对象,那么const指向变量所在的地址,const会保证const声明的变量的地址不变,但是不会保证地址内的数据不改变
    const person = [];
    person = ['黑人','白人'];//会报错,因为[]和['黑人','白人']是不一样的地址,地址发生了改变。
    
    
    这种情况不会报错,因为students指向的地址没有变化,只是里面的数据发生了改变
    const  students = [];
    students[0] = '阿明';
    students[1] = '阿利';

    如果想让定义的数组和对象中的数据或者属性不被修改,可以用Object.freeza(obj)进行冻结,这样给对象添加属性就不起作用了

posted @ 2018-09-07 15:44  keep_one_more_time  阅读(1506)  评论(0编辑  收藏  举报