我是靠谱客的博主 合适冬天,最近开发中收集的这篇文章主要介绍es6-01-let、const、块级作用域,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.let的使用

	let a = 1;
console.log(a);
  • let声明的变量只在所在的代码块有效,有块级作用域效果。
  • 使用let声明变量时,需要先声明后使用。否则报错:ReferenceError: Cannot access ‘x’ before initialization
  • 如果块级作用域种存在let命令,那么所声明的变量就绑定在这个区域了,不会受外部区域影响。与此同时该区域的引用规则为let的引用规则。在let命令之前和块级作用域之后这段区域称之为暂时性死区(temporal dead zone,TDZ)
  • let声明方式在本块级作用中不允许重复性声明

2.const的使用

	const PI = 3.14
  • 一但声明,其值不允许改变
  • 因为值无法改变,所以一但声明必须赋值,否则没有意义。
  • 本质: const实际上保证的并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。
    - 这对于简单类型,值就保存在内存地址中
    - 对于复合类型,内存地址是另一个地址,const只保证这个内存地址不 变,而另一个地址指向的内容可不可变是不可以控制的。

3.块级作用域

3.1 为什么需要块级作用域?

  • 内层变量可能会覆盖外层变量
var tmp = new Date()
function f(){
console.log(tmp);
if(false){
var tmp = 'sss'
}
}
undefined
  • 用来计数的的循环变量会泄露为全局变量
var s = 'hello'
console.log(i);//undefined
for(var i = 0; i < s.length;i++){
console.log(s[i]);
}
console.log(i);//5
undefined
h
e
l
l
o
5

补充:

  • es6声明变量的6种方法:var、function、let、const、import、class

最后

以上就是合适冬天为你收集整理的es6-01-let、const、块级作用域的全部内容,希望文章能够帮你解决es6-01-let、const、块级作用域所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部