博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
let 和 const 的特性
阅读量:4698 次
发布时间:2019-06-09

本文共 635 字,大约阅读时间需要 2 分钟。

let的特性:

  1. 不存在变量提升现象:即声明前使用,报ReferenceError。适用于for循环计数器。
  2. 暂时性死区:即在块级作用域内使用let声明变量,该变量只能在该作用域内使用。
  3. 不允许重复声明:let声明过的变量不能再次声明,否则报错。

const的特性:

  1. 不存在变量提升现象。
  2. 暂时性死区。
  3. 不可重复声明。
  4. 声明的是只读常量,声明时必须初始化。
  5. 本质保存的是内存地址,简单类型数据的值就保存在这个地址中,复合类型数据在这个地址中保存的是一个指针,这个指针指向的对象可以改变,单指针不可改变。
1 cost foo = {};2 3 // 可以改变foo的属性4 foo.prop = 123;5 foo.prop  //1236 7 // 不可以使foo指向别的对象8 foo = {}; //TypeError: "foo" is read-only

 

 

冻结对象:

 

// 彻底冻结var constantize = (obj) => {   Object.freeze(obj);    Object.keys(obj).forEach( (key, i) => {       if( typeof obj[key] === 'object' ){         constantize( obj[key] );       }     }); }

 

转载于:https://www.cnblogs.com/huyang0528/p/9579145.html

你可能感兴趣的文章
Linux下安装Tomcat
查看>>
windows live writer 2012 0x80070643
查看>>
tomcat 和MySQL的安装
查看>>
git常用操作
查看>>
京东SSO单点登陆实现分析
查看>>
u-boot启动第一阶段
查看>>
MySQL批量SQL插入性能优化
查看>>
定义列属性:null,default,PK,auto_increment
查看>>
用户画像展示
查看>>
C#中StreamReader读取中文出现乱码
查看>>
使用BufferedReader的时候出现的问题
查看>>
批处理文件中的路径问题
查看>>
hibernate出现No row with the given identifier exists问题
查看>>
为什么wait()和notify()属于Object类
查看>>
配置NRPE的通讯
查看>>
shp系列(一)——利用C++进行shp文件的读(打开)与写(创建)开言
查看>>
匹配两个空格之间的字符。。。
查看>>
CSS 文字溢出 变成省略号 ...
查看>>
Spring事务
查看>>
java编程基础(三)流程控制语句
查看>>