博主信息
博文 12
粉丝 0
评论 0
访问量 10979
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
2020-05-28——ES6 let与const及其相关
A 枕上人如玉、
原创
731人浏览过

1.块级作用域

ES6新增了块级作用域,总结一句话大致就是:大括号{}包起来的代码块基本山都可以当做块级作用域。

常见的有

直接使用{}包起来:

  1. {
  2. var a = 4
  3. }

函数体大括号,if-else大括号,for循环大括号,switch大括号,try-catch大括号等。需要注意的是,for循环,每一次循环时的{}都是一个独立的块级作用域。

  1. for(let i=0; a < 5; i++){ let j = i}

上面代码循环了五次,实际上有五个独立的j。

日常开发中,我们就可以利用这个特性,来创建块级作用域了。

2.块级作用域变量let与const

使用let或const声明的变量只在当前块级作用域生效,出了这个代码块,就无法访问。

  1. { let a = 5 }console.log(a)
  2. // Uncaught ReferenceError: a is not defined

日常开发中,块级作用域中使用的变量,尽量使用let或者const声明。

需要注意的问题:

let和const变量一定要先声明,再使用,避免出错。不要试图利用变量提升的特性。
const声明变量时,一定要初始化,否则会报错。let建议也在声明时初始化。
const声明的变量一旦初始化,以后就不可以在进行赋值操作,但可以对其引用的对象进行更改。

  1. const noChangeMe;
  2. //Uncaught SyntaxError: Missing initializer in
  3. const declarationconst noChangeMe = [1,2,4]noChangeMe = [2, 3]
  4. //Uncaught TypeError: Assignment to constant variablen
  5. oChangeMe[100] = 100
  6. // everything is OK

let和const声明的变量不能再重复声明。虽然var可以无限次重复声明,但是并不适用于这两个新的声明方式。

  1. let a = 1
  2. let a = 2
  3. // Identifier 'a' has already been declared

不要用window.xxx去调用let与const声明的变量 ES6规定,let、const、class声明的全局变量,不属于顶层对象的属性。

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学