第一章  基础

1.let和const命令

(1).let用于声明变量,所声明的变量只在当前代码块有效

特点:不存在变量提升     所以在变量声明之前就使用会报错

暂时性死区           只要块级作用域内存在let命令,他所声明的变量就绑定在该区域,不再受外部影响  如全局和块内都有同名变量  在块内操作是操作块内的那个变量

ES明确规定,如果区块中存在let和const指令,则这个区块对这些命令声明的变量从一开始就形成封闭作用域,只要在声明之前使用,就会报错

不允许重复声明     不允许在同一作用域重复声明,因此不能在函数内部声明与参数同名的变量

tips:function bar(x = y, y = 2){

console.log(x,y);

}         // 会报错 因为当把y的值赋给x时y还没有声明

(2).块级作用域

块级作用域产生之前不合理的场景:

内部变量可能会覆盖外部变量          如内部有与外部同名的变量声明  由于变量声明提升 所以内层覆盖外层

用来计数的变量泄露成全局变量       由于闭包问题 计数的变量不能释放成为全局变量 失去计数功能

let实际上为js提供块级作用域

特点:

let定义的变量 外层代码不受内层代码影响

内层作用域可以定义与外层同名的变量

可以取代匿名函数

tips:

ES6规定,函数本身的作用域在其所在的块级作用域中

在严格模式下,函数只能在顶层作用域和函数内声明,其他情况会报错

最新文章

  1. Net分布式系统之二:CentOS系统搭建Nginx负载均衡
  2. 蓝桥杯---数独(模拟 || dfs)
  3. Python学习教程(learning Python)--3.3 分支语句的条件表达式详解
  4. Altium Designer 使用小结
  5. Tomcat源码分析--转
  6. 关于js封装框架类库之样式操作
  7. 关于int全区变量读写的原子性
  8. 【机器学习PAI实践二】人口普查统计
  9. 数据库备份shell脚本
  10. yii学习笔记--配置文件的配置
  11. (luogu P4012)深海机器人问题 [TPLY]
  12. PAT-B-1020 月饼 (25)(25 分)
  13. .Net Core HttpClient 忽略https证书提醒
  14. 信步漫谈之Jenkins—集成环境搭建
  15. net core体系-web应用程序-4net core2.0大白话带你入门-4asp.net core配置项目访问地址
  16. 使用openbabel进行小分子底物构象搜索
  17. P5157 [USACO18DEC]The Cow Gathering
  18. JAVA-JSP内置对象之application对象获得其他信息
  19. 解决SecureCRT小键盘乱码
  20. windows安装PHP IIS MYSQL

热门文章

  1. VC++调试错误的解决方案
  2. vue--mixins
  3. GC知识记录
  4. Git 安装和使用Tips
  5. DataNitro安装配置
  6. (完美)华为Mate8 NXT-TL00的USB调试模式在哪里开启的经验
  7. vsphere client/web client 开启ESXi SSH服务
  8. php正则匹配
  9. 了解UI Automator Viewer
  10. [Maven - Java Version] 如何设置Maven的Java版本或者使用不同的JDK版本编译