ES11
摘要:1、可选链操作符 -- Optional Chaining (?.) 减少访问深层对象时判断属性存不存在的问题。 a = { b: { c: { d: { e: 1 } } } } // 必须检查属性是否存在于每个级别,以避免出现Cannot read property ‘’of undefiend
阅读全文
posted @
2021-02-02 19:25
神秘杰尼龟
阅读(165)
推荐(0)
ES10
摘要:1. Object.fromEntries() 在JavaScript中,将数据从一种格式转换为另一种格式非常常见。 为了便于将对象转换为数组,ES2017引入了Object.entrie()方法。 此方法将对象作为参数,并以[key,value]的形式返回对象自己的可枚举字符串键控属性对的数组。
阅读全文
posted @
2021-02-02 18:16
神秘杰尼龟
阅读(186)
推荐(0)
ES9
摘要:1.async/await 异步迭代 ES8为我们带来async/await,使我们能在同步的写法中执行异步函数,但是在循环中: async function foo(array) { for (let i of array) { await doSomething(i); } } 上面代码执行不符
阅读全文
posted @
2021-02-02 18:12
神秘杰尼龟
阅读(394)
推荐(0)
ES8
摘要:1.async await 异步函数async function() 1.1作用 避免有更多的请求操作,出现多重嵌套,也就是俗称的“回调地狱” this.$http.jsonp('/login', (res) => { this.$http.jsonp('/getInfo', (info) => {
阅读全文
posted @
2021-02-02 18:02
神秘杰尼龟
阅读(135)
推荐(0)
ES7
摘要:1.Array.prototype.includes() includes()作用,是查找一个值在不在数组里,若是存在则返回true,不存在返回false. 1.基本用法: ['a', 'b', 'c'].includes('a') // true ['a', 'b', 'c'].includes(
阅读全文
posted @
2021-02-02 17:56
神秘杰尼龟
阅读(176)
推荐(0)
ES6 module
摘要:历史上,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。其他语言都有这项功能,比如 Ruby 的require、Python 的import,甚至就连 CSS 都有@import,但是 JavaScript 任何这方面的支持都没
阅读全文
posted @
2021-02-01 22:25
神秘杰尼龟
阅读(71)
推荐(0)
ES6 修饰器
摘要:类的修饰 修饰器(Decorator)是一个函数,用来修改类的行为。这是ES7的一个提案,目前Babel转码器已经支持。 修饰器对类的行为的改变,是代码编译时发生的,而不是在运行时。这意味着,修饰器能在编译阶段运行代码。 function testable(target) { target.isTe
阅读全文
posted @
2021-02-01 22:20
神秘杰尼龟
阅读(370)
推荐(0)
ES6 class
摘要:Class基本语法 概述 JavaScript语言的传统方法是通过构造函数,定义并生成新对象。下面是一个例子。 function Point(x, y) { this.x = x; this.y = y; } Point.prototype.toString = function () { retu
阅读全文
posted @
2021-02-01 22:08
神秘杰尼龟
阅读(76)
推荐(0)
ES6 异步操作和async函数
摘要:异步编程对JavaScript语言太重要。Javascript语言的执行环境是“单线程”的,如果没有异步编程,根本没法用,非卡死不可。 ES6诞生以前,异步编程的方法,大概有下面四种。 回调函数 事件监听 发布/订阅 Promise 对象 ES6将JavaScript异步编程带入了一个全新的阶段,E
阅读全文
posted @
2021-02-01 22:03
神秘杰尼龟
阅读(133)
推荐(0)
ES6 promise对象
摘要:Promise的含义 Promise是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6将其写进了语言标准,统一了用法,原生提供了Promise对象。 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操
阅读全文
posted @
2021-02-01 22:01
神秘杰尼龟
阅读(61)
推荐(0)
ES6 Generator 函数
摘要:简介 基本概念 Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同。本章详细介绍Generator函数的语法和API,它的异步编程应用请看《异步操作》一章。 Generator函数有多种理解角度。从语法上,首先可以把它理解成,Generator函数是一个状态机,封装
阅读全文
posted @
2021-02-01 21:54
神秘杰尼龟
阅读(58)
推荐(0)
ES6 Iterator和for...of循环
摘要:Iterator(遍历器)的概念 JavaScript原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6又添加了Map和Set。这样就有了四种数据集合,用户还可以组合使用它们,定义自己的数据结构,比如数组的成员是Map,Map的成员是对象。这样就需要一种统一的接口机
阅读全文
posted @
2021-02-01 21:31
神秘杰尼龟
阅读(117)
推荐(0)
ES6 Proxy 和 Reflect
摘要:Proxy 概述 Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。 Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访
阅读全文
posted @
2021-02-01 21:19
神秘杰尼龟
阅读(105)
推荐(0)
ES6 set和map数据结构
摘要:Set 基本用法 ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成Set数据结构。 var s = new Set(); [2, 3, 5, 4, 5, 2, 2].map(x => s.add(x)); for (let i
阅读全文
posted @
2021-02-01 20:52
神秘杰尼龟
阅读(71)
推荐(0)
ES6 symbol
摘要:概述 ES5的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin模式),新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。这就是ES6引入Symbol的
阅读全文
posted @
2021-02-01 20:43
神秘杰尼龟
阅读(72)
推荐(0)
ES6 对象的扩展
摘要:属性的简洁表示法 ES6允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。 var foo = 'bar'; var baz = {foo}; baz // {foo: "bar"} // 等同于 var baz = {foo: foo}; 上面代码表明,ES6允许在对象之中,直接写
阅读全文
posted @
2021-02-01 20:31
神秘杰尼龟
阅读(56)
推荐(0)
ES6 函数的扩展
摘要:函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法。 function log(x, y) { y = y || 'World'; console.log(x, y); } log('Hello') // Hello World log('Hello', '
阅读全文
posted @
2021-02-01 16:57
神秘杰尼龟
阅读(54)
推荐(0)
ES6 数组的扩展
摘要:Array.from() Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)。 下面是一个类似数组的对象,Array.from将它转为真正的数组。 let arrayL
阅读全文
posted @
2021-02-01 16:47
神秘杰尼龟
阅读(64)
推荐(0)
ES6 数值的扩展
摘要:二进制和八进制表示法 ES6提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。 0b111110111 503 // true 0o767 503 // true 从ES5开始,在严格模式之中,八进制就不再允许使用前缀0表示,ES6进一步明确,要使用前缀0o表示。 /
阅读全文
posted @
2021-02-01 16:30
神秘杰尼龟
阅读(56)
推荐(0)
ES6 正则的扩展
摘要:RegExp构造函数 在ES5中,RegExp构造函数的参数有两种情况。 第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag)。 var regex = new RegExp('xyz', 'i'); // 等价于 var regex = /xyz/i; 第二种情况是,参数是
阅读全文
posted @
2021-02-01 16:06
神秘杰尼龟
阅读(84)
推荐(0)