![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ES6
文章平均质量分 86
F班的小夏同学
理想主义青年永远不会被现实招安
展开
-
数组的扩展
上面代码的ES5写法中,push()方法的参数不能是数组,所以只好通过apply()方法变通使用push()方法。扩展运算符内部调用的是数据结构的Iterator接口,因此只要具有Iterator接口的对象,都可以使用扩展运算符,比如Map结构。Array.from()方法用于将两类对象转为真正的数组:类似数组的对象和可遍历的对象(包括ES6新增的数据结构Set和Map)。下面是扩展运算符取代apply()方法的一个实际的例子,应用Math.max()方法,简化求出一个数组最大元素的写法。原创 2022-10-15 16:22:31 · 92 阅读 · 0 评论 -
Set、Map、WeakSet、WeakMap
如果用一句话来描述,我们可以说:Set是一种叫做集合的数据结构,Map是一种叫做字典的数据结构。原创 2022-10-12 20:19:01 · 125 阅读 · 0 评论 -
Proxy
Proxy用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”,即对编程语言进行编程。Proxy可以理解为,在目标对象之前架设一层"拦截",外界对该对象的访问,都必须先通过这层拦截 ,因此提供了一种机制,可以对外界的访问进行过滤和改写。Proxy的原意是代理,用在这里表示它来”代理“某些操作,可以译为”代理器“。} , {`);`);`);`);`);原创 2022-10-11 16:19:12 · 309 阅读 · 0 评论 -
函数的扩展
这时,就出现了双重默认值。上面的代码中,函数fetch没有第二个参数时,函数参数的默认值就会生效,然后才是解构赋值的默认值生效,变量method才会取到默认值GET。指定了默认值后,函数的length属性,将返回没有指定默认值的参数个数。这时,无法只省略该参数,而不省略后面的参数,除非显式的输入undefined。上面的代码中,参数p的默认值为x+1,这时,每次调用函数的时候,都会重新计算x+1,而不是默认p等于100。上面代码中,length属性的返回值,等于函数的参数个数减去了指定默认值的参数个数。原创 2022-09-26 22:22:52 · 273 阅读 · 0 评论 -
promise详解
promise是异步编程的一种解决方案,比起传统的解决方案——回调函数和事件——更加的强大。在项目中,我们经常会遇到异步的问题,在之前,我们通常使用回调函数来解决异步编程,但是在一些比较复杂的情况下,我们经常会陷入。promise能够很好的帮助我们解决这个问题。早就听说过Promise的大名,但是promise到底是个什么东西呢?是个类?对象?数组?函数?来,先给大家拉出来溜溜。这里我们可以看到,原来这个promise是一个构造函数,并且在它自己的身上有all、reject、resolve。...原创 2022-08-04 11:32:07 · 255 阅读 · 0 评论 -
字符串的新增方法
该方法返回一个斜杠都被转义(即斜杠前面再加一个斜杆)的字符串,往往用于模板字符串的处理方法。 如果原字符串的斜杠已经转义,那么String.raw()会进行再次转义。 includes(),startsWith(),endsWith() 传统上,javascript只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中。ES6又提供了三种新方法。 这三个方法都支持第二个参数,表示开始搜索的位置。 上面代码表示,使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符原创 2022-06-09 15:05:52 · 306 阅读 · 0 评论 -
字符串的扩展
ES6为字符串添加了遍历器接口,使得字符串可以被for…of遍历循环。 模板字符串 模板字符串是增强版的字符串,用反引号(`)标识。它可以当做普通字符串来使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。 上面代码中的模板字符串,都是用反引号表示。如果在模板字符串中需要使用反引号,则前面要用反斜杠转义。 如果用模板字符串表示多行字符串,所有的空行和缩进都会被保留在输出之中。 上面的代码中,所有模板字符串的空格和换行,都是被保留的,比如 标签前面会有一个换行。如果你不想要这个换行,可以使用方法消除它。原创 2022-06-09 11:23:21 · 59 阅读 · 0 评论 -
变量的解构赋值
以前,为变量赋值,只能直接指定值。 ES6允许写成下面这样。 本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。 如果解构不成功,变量的值就等于undefined。 以上两种情况都属于解构不成功,foo的值都会等于undefined。 另一种情况是不完全解构,即等号左边的模式,只匹配一部分的等号右边的数组。这种情况下,结构依然可以成功。 如果等号的右边不是数组(或者严格来说,不是可遍历的结构),那么将会报错。 上面的语句都会报错,因为等号右边的值,要么转为对象后不具备I原创 2022-06-08 14:33:28 · 289 阅读 · 0 评论 -
let和const命令
let用法类似于var,但是所声明的变量只在let命令所在的代码块内有效。 for循环的计数器,就很适合使用let命令。 上面的代码中,计数器i只在for循环体内有效,在循环体外引用就会报错。 下面的代码如果使用var,最后输出的是10. 上面的代码中,变量i是var命令声明的,在全局范围内都有效,所以全局只有一个变量i。每一次循环,变量i的值都会发生改变,而循环内被赋给数组a的函数内部的console.log(i),里面的i指向的就是全局的i。也就是说,所有的数组a的成员里面的i,指向的都是同一个i,导致原创 2022-06-07 14:48:05 · 116 阅读 · 0 评论