作者:empty 页数:106 出版社:empty |
底层实现上, let声明的变量实际上也会有提升, 但是, 提升后会将其放入到暂时性死区 , 如果访问的变量位于暂时性死区, 则会报错:“Can not access'a'before initialization , 当代码运行到该变量的声明语句时,会将其从暂时性死区中移除console.log(a)let a=123;o, unc au ent eference Error:Can not access ape for e initialization在循环中, 用let声明的循环变量, 会特殊处理, 每次进入循环体, 都会开启一个新的作用域, 并且将循环变量绑定到该作用域(每次循环,使用的是一个全新的循环变量)在循环中使用let声明的循环变量, 在循环结束后会销毁let div=document.getElementById( div Buttons ) ;for(let i-1; icw 10; i++) {const和let完全相同, 仅在于用const声明的变量, 必须在声明时赋值, 而且不可以重新赋值。实际上, 在开发中, 应该尽量使用const来声明变量, 以保证变量的值不会随意篡改, 原因如下:1.根据经验,开发中的很多变量,都是不会更改,也不应该更改的。2.后续的很多框架或者是第三方JS库,都要求数据不可变,使用常量可以一定程度上保证这一点。1.常量不可变,是指声明的常量的内存空间不可变,并不保证内存空间中的地址指向的其他空间不console, log(i) //使用的是当前作用城中的idiv.appendChild(button)使用const声明常量注意的细节:2.常量的命名3.在for循环中, 循环变量不可以使用常量1.特殊的常量:该常量从字面意义上,一定是不可变的,比如圆周率、月地距地或其他一些绝不可能变化的配置。通常,该常量的名称全部使用大写,多个单词之间用下划线分割2.普通的常量:使用和之前一样的命名即可
邓哥喜欢秋葵邓哥也喜欢香栗集达以是在何有意义的数据13表达式是可以嵌套的:表达式中的模板字符串秋葵香菜奥布瓦的发顺丰在植板字符串中使用S(J5表达式)可以进行插值[扩展]模板字符串标记在模板字符串书写之前,可以加上标记:标记名模板字符申标记是一个函数,函数参数如下:1.参数1:被插值分割的字符串数组2.后续参数:所有的插值
·块级绑定
o var声明变量的问题
。使用let声明变量
。使用const声明常量
·字符串和正则表达式
o更好的Unicode支持
。新增的字符串API
。[扩展]正则中的粘连标记
o模板字符串
。[扩展]模板字符串标记
·参数
。参数默认值
。剩余参数
o展开运算符
。明确函数的双重用途
。箭头函数
·对象
。新增的对象字面量语法
。Object的新增AP
。面向对象简介
o类:构造函数的语法糖
。类的其他书写方式
。类的继承
·解构
。对象解构
。数组解构
。参数解构
·符号
o普通符号
。共享符号
。知名(公共、具名)符号
·异步处理
。[回顾]事件循环
。事件和回调函数的缺陷
。异步处理的通用模型
。Promise的基本使用
·回调地狱及解决方式
。回调地狱一(请求激活型)
。回调地狱二(请求判断型)
。回调地狱三(请求依赖型)
。Promise的串联
。Promise的其他api
o async和await
o【扩展】手写Promise
·Fetch Ap
oF etch Api概述
o基本使用
。文件上传
·迭代器和生成器
。迭代器
。可迭代协议与for-of循环
。生成器(Generator)
。生成器的应用---异步控制
·更多的集合类型
o set集合
。map集合
。手写Map
·代理与反射
o【回顾】属性描述符
1.允许重复的变量声明:导致数据被覆盖
2.变量提升:怪异的数据访问、闭包问题
【回顾】存取器属性
o Reflect
o Proxy代理
。观察者模式
·新增的数组API
o静态方法
。实例方法
·模块化
o Common JS
。ES6模块化简介
oES 6模块基本导入导出
。ES6模块导入导出
。ES6模块化的其他细节
块级绑定
var声明变量的问题
使用var声明变量