博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ES6 随记(1)-- let 与 const
阅读量:4979 次
发布时间:2019-06-12

本文共 1163 字,大约阅读时间需要 3 分钟。

1. const(声明一个只读的常量)

这个是很好理解的,且声明时就必须赋值而不能以后再赋,不然会报错。

而个人认为它最大的用处还是在于 {} 和 [] 上,const 保证了它的内存地址(指针)不变(非数据不可变)。(但这点现在浏览器好像还未统一)

var TEST = {};TEST.xx = 'x';	// 可执行TEST = {x: 'x'}; // 重新赋值则不可行

另外注意,我们推荐常量所用名称最好全为大写字母。

 

2. let (申明块级作用域变量)

var a = [];for(let i=0; i<1; i++) {    a[i] = function(){console.log(i)}    if (true) {        let i = 'x';    }    console.log(i);  // 打印数字而不是 'x'}a[0]();  // 使用 let 打印 0,使用 var 打印 5。

以上即为 let 的典型特征,块级作用域内有效。

 

2.5 块级作用域

怎样才叫一个区块呢,function / for / if,以及哪怕两个中括号中间的都是一个独立的块级。

注意,同一区块内不能出现相同变量名的声明,否则会报错。

内层可访问外层块级,外层不能访问内层新申明的变量,因此 IIFE 写法不再有必要:

// IIFE 写法(function () {    var a = 'x';}());// 块级作用域写法{    let a = 'x';}

此外,let 和 const 不同于 var 还在于,var 会优先声明,而 ES6 不能再这样做了。

a = 'x';var a;console.log(a); // xb = 'x';let b ;console.log(b); // 报错

另外,函数声明在 ES6 的块级作用域是个奇葩,而且浏览器对此的实现还没有统一,不做讨论

// 浏览器的 ES6 环境function fn() { console.log('I am outside!'); }(function () {    if (false) {        function fn() { console.log('I am inside!'); }    }    f();  // f is not a function}());

 

以上,便是 let 和 const 的说明,

在此强烈推荐使用这两个命令,它们有着 var 无法拥有的特性,

应当用 let 完全取代 var;无需重新赋值的对象和数组多使用 const。

 

本文部分转载自  的 

转载于:https://www.cnblogs.com/foreverZ/p/6655101.html

你可能感兴趣的文章
很有趣的BIOS加载MBR到0X7C00的故事
查看>>
ESX VCENTER从模板快速布置IT应用
查看>>
leetcode-题2
查看>>
【CSS】使用CSS改变超链接样式
查看>>
angular.js测试框架protracotr自带的webdriver-manager启动问题“Invalid or corrupt jarfile”...
查看>>
程序是怎样跑起来的pdf
查看>>
sizeof(结构体)的计算
查看>>
Python学习笔记——基础篇【第六周】——shutil模块
查看>>
Sql中将字符串按分割符拆分
查看>>
.Net Core 使用EF Core方法
查看>>
为 Array 对象添加一个去除重复项的方法
查看>>
Spinner绑定Key value
查看>>
【JZOJ4783】【NOIP2016提高A组模拟9.15】Osu
查看>>
python学习之路(5)
查看>>
微服务(Microservices)和服务网格(Service Mesh)架构概念整理
查看>>
iOS开发网络篇—NSURLConnection
查看>>
假期第二周
查看>>
预处理ifndef
查看>>
正则表达式元字符详解
查看>>
c# invoke c++
查看>>