let&const

let
  • 基本用法
let a=10;
  • 特点
  1. 块作用域
意味着必须有大括号
  1. 不存在变量提升
变量提升说明变量可以在声明之前使用,值为undefined
  1. 暂时性死区
定义:在代码块内,使用命令声明let变量之前,该变量都是不可用的。
意味着typeof不是个安全的操作。反而如果一个变量根本没有被声明,使用typeof反而不会报错。
4.不允许重复声明
let不允许在同一作用域下声明同名变量。
块作用域
坑点:
  • 允许在块级作用域内声明函数。
  • 函数声明类似于var,即会提升到全局作用域或函数作用域的头部。
  • 同时,函数声明还会提升到所在的块级作用域的头部。
解决方案:
如果确实需要,也应该写成函数表达式,而不是函数声明语句。
const
  • 基本用法
const PI = 3.14;
  • 特点
1.只读
2.实际上变量指向的那个内存地址所保存的数据不得改动。
简单数据是内存地址,而复杂类型的数据指向的是指针.如果真想将对象冻结,可使用Object.freeze
 
 
Q:es6几种声明方法?
A:6种。var,function,let,const,import,class.
 
顶层对象属性
  • 顶层对象
在浏览器中指的是window,在node中是指的global
从es6开始顶层变量与全局变量开始脱离关系。
 
globalthis
目前只是一种提案

posted @ 2019-09-24 17:26  hight1  阅读(136)  评论(0编辑  收藏  举报