es6 const总结

用法

  • 声明一个只读的常量
  • 暂时性死区特性,要先声明后使用
  • 只在声明的做用域块内有效
  • 统一做用域块内不能够重复声明同一常量

本质:

  • const本质上只是保证该常量名指向的内存地址是不变的,相似c语言中指针的概念 因此若是使用const声明一个对象,只要不改变该常量名指向对象在栈内存的地址就不会报错,对象的属性是能够操做的,数据结构是可变的
  • 若是要彻底冻结对象,能够使用Object.freeze();见下列代码:
function freeze(obj) {
    if(!isObject(obj)) return;
    Object.freeze(obj);
    for(let i in obj) {
    freeze(i);
    }
}
function isObject(obj) {
return Object.prototype.toString.call(obj).slice(8,-1).toLowerCase()==='object';
}
相关文章
相关标签/搜索