ES6部分知识点

本文介绍了ES6中新增的let和const变量声明方式,强调了它们与var的区别,包括作用域、变量提升和暂存死区。同时,详细讲解了模板字符串、Array.from()和Array.of()方法,以及Promise的特点和then方法在异步编程中的应用。
摘要由CSDN通过智能技术生成

let和const

在ES6中,新增了let和const命令,用法类似于var,但也有比较大的区别

let
let声明的变量在所在代码块内有效
{
    var a =1;
    let b =10;
}
console.log(a);
console.log(b);

在这种情况下,let 声明的变量就会出错
在这里插入图片描述for循环的计数器,就很合适使用let命令。
for循环还有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。
函数内部的变量i与循环变量i不在同一个作用域,有各自单独的作用域(同一个作用域不可使用 let 重复声明同一个变量)

let不存在变量提升

var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined
但是let不能提前使用变量,在声明之前,变量都是不存在的。

暂时性死区

只要块级作用域内存在let命令,所声明的变量就不受外部影响

重复声明

let不允许在相同作用域内重复多次声明同一个,会出现报错的情况。

const

const声明一个只读的常量,一旦声明,值就不能更改。
const一旦声明变量,就必须立即初始化,不能留到以后赋值。
其他的跟let的差不多

模板字符串

模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
如果在模板字符串中需要使用反引号,前面要用反斜杠转义

const c = `\`wwwww\`start`;

如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。

newRow.innerHTML = `
<td>${a}</td>
<td>${b}</td>
<td>${c}</td>
<td>${d}</td>
<td>${e}</td>
`;

如果你不想要这个换行,可以使用trim方法消除它。
嵌入变量时可以放在${}之中。
模板字符串还能嵌套。

数组

Array.from()

Array.from()方法将两类对象转为真正的数组,一种是类似于数组的对象,一种是可遍历的对象。
如果参数是一个真正的数组,Array.from()会返回一个一模一样的新数组。

Array.from([1,2,3,4])
//1,2,3,4

比如取出一个DOM节点

 const tableRow = Array.from(document.querySelectorAll('td:nth-child(2)'))
        .find(td => td.textContent === modifiedCourseId)
        .closest('tr');
Array.of()

Array.of()方法用于将一组数值转换为数组

Array.of(5,6,7,8);
//[5,6,7,8]
Array.of(2).length;
//1

Array.of()基本上可以用来替代Array()或new Array()
Array.of()总是返回参数值组成的数组。如果没有参数,就返回一个空数组。

实例方法

copyWithin()
find(),findIndex(),findLast(),findLastIndex()
find()方法,用于找出第一个符合条件的数组成员
fill()
entries(),keys() 和 values()
includes()
flat()
flatMap()
at()
以上方法就不过多说明了

Promise

Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。

特点

1.对象的状态不受外界影响。
Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)
2.一旦状态改变,就不会再变,任何时候都可以得到这个结果。
只有两种可能:从pending变为fulfilled和从pending变为rejected。只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果
Promise也有一些缺点。
首先,无法取消Promise,一旦新建它就会立即执行,无法中途取消。

then

Promise实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数。

promise.then(function(value) {
  // success
}, function(error) {
  // failure
});

then方法可以接受两个回调函数作为参数。
第一个回调函数是Promise对象的状态变为resolved时调用,第二个回调函数是Promise对象的状态变为rejected时调用。
Promise 新建后就会立即执行。
promise涉及到的知识点以及数组方法之后会总结,在这儿就不提太多了。

总结

ES6目前就学了这部分,后续会继续了解,里面方法挺多的,当然,我也理解得不是特别好,还是应用到实际中更能理解。
每周生活分享
在这里插入图片描述
生活多姿多彩,总要有我负重前行的时候😓
看来不管是高中还是大学,物理都是我前行道路上令人无法无视的负重
求一个学好电子技术基础的好方法

  • 33
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值