学习ES6
DREGON_
这个作者很懒,什么都没留下…
展开
-
解构赋值
解构赋值概述在 ES6 中新增了变量赋值的方式:解构赋值。允许按照一定模式,从数组和对象中提取值,对变量进行赋值。注意:解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转为对象。由于undefined和null无法转为对象,所以对它们进行解构赋值,都会报错。数组解构赋值例子:// 数组解构赋值 ----------------let arr = [1, 2, 3]let aa = arr[0]let bb = arr[1]let cc = arr[2]console.log原创 2020-12-29 18:11:44 · 254 阅读 · 0 评论 -
Reflect
Reflect概述Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。将Object属于语言内部的方法放到Reflect上修改某些Object方法的返回结果,让其变得更合理让Object操作变成函数行为Reflect对象的方法与Proxy对象的方法一一对应,只要是Proxy对象的方法,就能在Reflect对象上找到对应的方法Reflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法,这些方法与处理器对象的方法相同。Reflect不是一个原创 2020-12-29 17:24:59 · 110 阅读 · 0 评论 -
Number
Number概述JavaScript 的 Number 对象是经过封装的能让你处理数字值的对象。语法let a = new Number('123'); console.log(a === 123); // falselet b = Number('123'); console.log(b === 123); // trueconsole.log(a instanceof Number) // is trueconsole.log(b instanceof Number); // is f原创 2020-12-29 17:14:11 · 144 阅读 · 0 评论 -
String
String字符串字面量 也叫 模板字面量基本语法String(thing)new String(thing)参数 thing : 任何能被转化为字符串的值从字符串中获取单个字符使用 for…of 对字符串进行遍历:// ES6为字符串添加了遍历器接口for (const item of "mayunhan") { console.log(item); //m a y u n h a n}使用charAt():// 取字符串某个字符的方法// charAt()con原创 2020-12-29 16:21:50 · 145 阅读 · 0 评论 -
WeakSet 和 WeakMap
WeakSet 和 WeakMapWeakSet 只能存对象,且没有size属性,不能遍历。WeakSet 中的对象都是弱引用,即垃圾回收机制不考虑 WeakSet 对该对象的引用,也就是说,如果其他对象都不再引用该对象,那么垃圾回收机制会自动回收该对象所占用的内存,不考虑该对象还存在于 WeakSet 之中。WeakMap 的键值只能存对象,WeakMap的键名所指向的对象,不计入垃圾回收机制...原创 2020-12-28 17:53:42 · 114 阅读 · 0 评论 -
Generator
Generator 学习概念Generator 函数是 ES6 提供的一种异步编程解决方案。Generators 是可以用来控制迭代器的函数。它们可以暂停,然后在任何时候恢复。执行 Generator 函数会返回一个遍历器对象。例子简单例子:function* helloWorldGenerator() { yield 'hello'; yield 'world'; return 'ending';}let hw = helloWorldGenerator();con原创 2020-12-28 17:47:21 · 117 阅读 · 0 评论 -
Proxy
Proxy的学习概念在 ES6 标准中新增的一个非常强大的功能是 Proxy,它可以自定义一些常用行为如查找、赋值、枚举、函数调用等。通过 Proxy 这个名称也可以看出来它包含了“代理”的含义,只要有“代理”的诉求都可以考虑使用 Proxy 来实现。可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。基本语法let p = new Proxy(target,handler)参数含义targ原创 2020-12-28 17:07:51 · 120 阅读 · 0 评论 -
Promise
Promise 对象Promise的三种状态一个 Promise 必然处于以下几种状态之一:状态不可逆待定(pending): 初始状态,既没有被兑现,也没有被拒绝。已兑现(fulfilled): 意味着操作成功完成。已拒绝(rejected): 意味着操作失败Promise 常用的方法promise a) then 参数为回调函数 成功时 result b) catch 参数为回调函数 失败时 error c) finally 参数为回调函数 任何情况 d) all 这个方法原创 2020-12-25 18:03:07 · 136 阅读 · 2 评论 -
javascript内置对象Object
Object语法:// 对象初始化器(Object initialiser)或对象字面量(literal)// key-value 结构,key 字符串、value 任何值{ [ nameValuePair1[, nameValuePair2[, ...nameValuePairN] ] ] }// 以构造函数形式来调用// value 任何值new Object([value])在JavaScript中,几乎所有的对象都是Object类型的实例,它们都会从Object.prototyp原创 2020-12-25 17:41:05 · 166 阅读 · 0 评论 -
JS编译的几种情况要打;号
问题今天写代码时,看着JS代码没有问题,却总是报错,单独一行行执行却成功了。现场:源码:let user1 = {}[user1.firstName, user1.secondName] = 'Kobe Bryant'.split(' ')console.log(user1.firstName, user1.secondName) 报错:[user1.firstName, user1.secondName] = 'Kobe Bryant'.split(' ') ^ReferenceE原创 2020-12-24 10:54:10 · 146 阅读 · 0 评论 -
作用域 和 setTimeout 遇到的问题
作用域 和 setTimeout问题1:描述:结果:原因:方案:问题1:描述:该循环中的输出结果为?for (var i = 0; i < 3; i++) { setTimeout(function() { console.log(i) })}console.log(i)结果:3333原因:可以百度搜到 setTimeout是异步的,往任务队列里面添加一个任务,只有主线上的全部执行完,才会执行任务队列里的任务;同时 i 是全局的所以等原创 2020-12-23 16:19:41 · 91 阅读 · 0 评论 -
学习ES6作用域中,动态作用域:遇到的问题
学习ES6作用域中,动态作用域:遇到的问题问题1:描述:vscode输入:网页控制台输入:问题1:描述:在控制台输入并无问题。在js中写 会在执行 test1() 时,报错:TypeError: Cannot read property ‘a1’ of undefinedvscode输入:// 动态作用域window.a1 = 3function test1() { console.log(this.a1) }test1.bind({ a1: 2})()原创 2020-12-23 15:03:14 · 109 阅读 · 0 评论