You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
constfruits=['Apple','Banana','Orange','Mango'];for(let[index,fruit]offruits.entries()){console.log(`${fruit} ranks ${index+1} in my favorite fruits`);}// Apple ranks 1 in my favorite fruits// Banana ranks 2 in my favorite fruits// Orange ranks 3 in my favorite fruits// Mango ranks 4 in my favorite fruits
一、let、const 声明变量
var
是允许重新赋值、重新定义的,只有global
和function scope
作用域,在if
内无作用域let
、const
拥有block scope
作用域,有{}
的时候就表明它的作用域范围let
、const
不可重复声明一个变量,所以使用var
容易不小心覆盖原来的变量let
可以重新赋值,const
不可以重新赋值const
也是可以修改的,不过要是引用类型,相当于人(Person)是不可改变的,但我的年龄会随着时间改变实在不希望改变,可以通过
Object.freeze
应用场景
1、通过
let
、const
实现私有变量window
对象下有一个name
属性为了保证我们不影响到
window
下的name
属性,我们通过 IIFE(立即执行函数)去实现私有化变量,但为了这个目的而去写这个函数,不利于代码的可读性有了
let
、const
就可以通过它们的特性block scope
来实现了2、
for
循环应用场景上面返回 10个
i:10
的原因就在于,在setTimeout
1秒后执行的时候,循环已经结束只需将
var
改为let
声明,每次声明的都属于当前的块级作用域,setTimeout
只认这个作用域PS:
const
不能使用,const
的值是不能重新赋值的3、临时性死区(Temporal dead zone)
原因是变量提升(是 JS 将声明移到作用域的顶部)
相当于是:
使用
let
、const
呢?同样有变量提升,它们会存在于临时性死区,所以这个特征让我们养成在变量未声明的时候,不要使用
二、箭头函数(arrow function)
三个特点:
简明的语法
隐式返回
有 return 则表示是显示返回
不绑定 this
老方法是通过:
var self = this
新方法则通过箭头函数,箭头没有自己的
this
,this
是继承父级的箭头函数都是匿名函数(如何使用命名函数的箭头函数)
首先了解什么是命名函数:
箭头函数要写成命名函数可:
应用场景
1、作为构造函数,一个方法需要绑定到对象
2、当你真的需要 this 时
3、需要使用 arguments 对象
三、参数默认值
四、模版字符串
字符串拼接可以简化,不用各种 ++++++ 了
应用场景
1、通过模版字符串输出列表
2、给传入的参数加标签
3、过滤用户输入
防止用户在输入框的内容中,插入非法字符串或脚本来实现 XSS (跨站脚本攻击),她们可以从在实现获取 Cookie、Session、密码之类的敏感信息
使用到的库:DOMPurify.js
下面这个案例就过滤掉了内嵌的
onload
事件五、字符串新增方法
.startsWith()
.endsWidth()
.includes()
.repeat()
应用场景
1、实现右对齐
六、对象解构
对象解构重命名
对象解构默认值
常用于一些库,会提供一个 options 的选项让你来自定义属性,它们会有默认值
七、数组解构
数组解构默认值
应用场景
1、交换变量
八、for-of 遍历
传统的有三种方法:for、forEach、for-in
for
在于繁琐forEach
缺点在于:不能中止 break、continue、returnfor in
在于会遍历所有可枚举的属性for-of
现在暂时不支持对象for-of 的使用
应用场景
1、可用于可迭代对象
对象有内置了遍历器接口
2、转换类数组 arguments
3、绑定事件
九、ES6 数组的新方法 -
Array.from()
andArray.of()
Array.from()
是将一个类数组对象(拥有 length 属性的)或者一个可遍历的对象(有 iterator 接口的),转换为一个真正的数组Array.of()
保证创建数组的一致性十、ES6 数组的新方法
.find()
.findIndex()
.some()
.every()
The text was updated successfully, but these errors were encountered: