暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ES6总结 —— Let 声明

一片生活枫叶 2021-09-28
1023


点击蓝字
关注我们



自ES2015发布以来,已经有三年多的时间了,而我是从2016年年底才开始接触前端的工作。在工作中多多少少会了解一些es6的东西,今天突然翻起了一篇介绍ES6的文章,是阮一峰写的博客。看了一下关于变量声明的介绍,他写的非常好,介绍的很全面,最起码我是这样认为的。这里我就不再赘述了。


我今天要写的就是总结一下ES6——Let 的相关知识点,仅供参考。由于个人能力有限,如有不当之处请大家留言指正。至于更详细的内容,还请参看阮大神的博客(http://es6.ruanyifeng.com/#docs/intro)。


1、所有用Let来声明的变量,没有变量提升的问题,它的使用范围只在其所在的代码块中有效。

2、父作用与子作用域可以同时使用Let声明两个相同名称的变量。两者之间互不干扰。因为其所在的代码块不同。

3、子作用域可以直接使用父作用域Let声明的变量,而作用却不能使用子作用域Let声明的变量。(原因就是子作用域声明的变量无法提升为全局变量。

4、同一代码块中不允许同时声明两个同名的变量。无论是用Var还是用Let都不可以。

// 报错
function func() {
let a = 10;
var a = 1;
}

// 报错
function func() {
let a = 10;
let a = 1;
}

复制

5、直接使用已经声明但未曾赋值的变量,会报undefined

6、变量必须先声明,而后再使用。如果先使用变量,而后再去声明的话,就会报错,这在语法上被称为“暂时性死”。

7、如果要在代码块中声明一个函数的话,最好使用函数表达式的方法。

如:Let fn = function ( ) { };


8、const
声明的变量不得改变值,这意味着,const
一旦声明变量,就必须立即初始化,不能留到以后赋值。

9、const 的用法注意事项和Let 基本相同;

10、const
实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。

11、复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,const
只能保证这个指针是固定的(即总是指向另一个固定的地址),至于它指向的数据结构是不是可变的,就完全不能控制了。

const foo = {};

// 为 foo 添加一个属性,可以成功
foo.prop = 123;
foo.prop 123

// 将 foo 指向另一个对象,就会报错
foo = {}; // TypeError: "foo" is read-only

复制


关于变量声明,就先总结这些吧。


文章转载自一片生活枫叶,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论