![](https://img-blog.csdnimg.cn/20200720223611795.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
ES6
文章平均质量分 56
ES6开发、面试总结
小草莓蹦蹦跳
一枚努力奋斗的程序莓,喜欢记录和学习。本博客主要涵盖前端技术积累和工作积累。just do it,家人们加油加油油
展开
-
URLSearchParams
URLSearchParams是 Web API 中的一种对象,用于处理 URL 查询字符串的操作。它提供了一种简单的方式来访问和操作 URL 查询参数。通过使用 URLSearchParams 对象,你可以方便地解析和操作 URL 查询参数,而不需要手动解析 URL 字符串。这使得在 JavaScript 中处理 URL 查询参数变得更加方便和高效。原创 2024-03-28 17:55:44 · 520 阅读 · 0 评论 -
操作数组元素的常用方法有哪些?
该方法返回一个字符串。在调用 toLocaleString() 方法时会得到一个逗号分隔的数组值的字符串,它与 toString() 方法的区别是,为了得到最终的字符串,其中元素是数组中当前搜索的元素,索引是当前元素的索引,而数组是当前正在搜索的数组。返回一个新的数组,包含从 start 到 end (不包括该元素)的数组元素。它的参数是一个回调函数,所有数组元素依次执行该函数,返回结果为 true 的元素会被返回。传给每个方法的函数接收三个参数:分别是当前元素、当前元素的索引值、当前元素所属的数对象。原创 2023-11-11 02:09:15 · 402 阅读 · 0 评论 -
symbol 这个新增的基础数据类型有什么作用?
如果有一个,它返回现有的符号。否则,Symbol.for() 方法会创建一个新符号,使用指定键将其注册到全局符号注册表,然后返回该符号。如果我们想创建一个将被共享的 symbol,我们可以使用 Symbol.for() 方法而不是调用 Symbol() 函数。由于 Symbol 是一种基础数据类型,所以它具有很高的性能和可靠性,可以用于需要高效和安全的标识符创建和使用的场景。稍后,如果我们使用相同的键调用 Symbol.for() 方法,Symbol.for() 方法将返回现有符号。避免属性名冲突的问题。原创 2023-10-19 01:05:49 · 99 阅读 · 0 评论 -
利用闭包的特点来实现一个简单的缓存
这样 adder 运行的时候如果传递的参数之前传递过,那么就返回缓存好的计算结果,不用再计算了,如果传递的参数没计算过,则计算并缓存 fn.apply(fn, args),再返回计算的结果。备忘函数中用 JSON.stringify 把传给 adder 函数的参数序列化成字符串,把它当做 cache 的索引,将 add 函数运行的结果当做索引的值传递给 cache。当多次执行 add() 时,每次得到的结果都是重新计算得到的,如果是开销很大的计算操作的话就比较消耗性能了。备忘模式就是应用闭包的特点的一个。原创 2023-10-10 16:04:04 · 469 阅读 · 0 评论 -
for...in 和 for...of 的区别
for...in 适用于遍历对象的属性名,而 for...of 适用于遍历数组、字符串等可迭代对象的元素值。可迭代对象(Iterable)是指实现了迭代器接口的对象,它可以被迭代(遍历)的对象。在 JavaScript 中,可迭代对象通常是指具有内部属性的对象。可迭代对象是指它具有内部属性的对象。迭代器接口定义了一个next()方法,该方法返回一个包含value和done属性的对象。其中,value表示当前迭代位置的值,done表示迭代是否已经结束。可迭代对象可以通过调用其内部属性。原创 2023-09-24 00:37:42 · 414 阅读 · 0 评论 -
合并对象的常见方法
如果合并的对象中有同名属性,则后面的属性值会覆盖前面的属性值。原创 2022-07-06 13:40:05 · 177 阅读 · 0 评论 -
Vue - 子组件中修改props值报错的解决办法
赋值为一个新的值,当监听到值变化时,同时将消息告诉父组件原创 2020-11-26 15:11:01 · 3552 阅读 · 0 评论 -
删除数组最后一个元素、第一个元素、某个指定下标的元素、某个指定元素的方法、 获取两个数组之前的交集和并集
① pop:默认删除数组最后一个元素【会改变原数组,返回被删除的元素arr.pop() // pop删除return arr② slice:从原有数组中提取要保留的元素【不会改变原数组,返回新数组,是浅拷贝newArr = arr.slice(0, arr.length - 1) // 方法一// newArr = arr.slice(0, -1) // 方法二slice不会修改原数组,只会返回一个浅复制了原数组中的元素的一个新数组。arr.push('原数组arr新加的值')原创 2023-08-16 18:28:50 · 3166 阅读 · 0 评论 -
算法——用递归算法实现,数组长度为5且元素的随机数在2-32间不重复的值
描述:这是一道大题目,把考点拆成了4个小项;需要侯选人用递归算法实现(限制15行代码以内实现;限制时间10分钟内完成): a) 生成一个长度为5的空数组arr。 b) 生成一个(2-32)之间的随机整数rand。 c) 把随机数rand插入到数组arr内,如果数组arr内已存在与rand相同的数字,则重新生成随机数rand并插入到arr内[需要使用递归实现,不能使用for/while等循环] d) 最终输出一个长度为5,且内容不重复的数组arr。 /* * 初始化 a原创 2020-07-20 14:47:02 · 668 阅读 · 0 评论 -
用递归算法实现,数组长度为5且元素的随机数在2-32间不重复的值
【代码】用递归算法实现,数组长度为5且元素的随机数在2-32间不重复的值。原创 2023-04-26 11:14:26 · 51 阅读 · 0 评论 -
写一个获取数组的最大值、最小值的方法
写一个获取数组的最大值、最小值的方法 // 第一种写法 sort var arr = [5, 4, 6, 7, 8, 2, 3, 5, 12, 3] function sortNum(a, b) { return b - a } arr.sort(sortNum) console.log(arr) // [12, 8, 7, 6, 5, 5, 4, 3, 3, 2] // 再去获取第一和最后一个元素的值.原创 2020-07-22 23:24:58 · 614 阅读 · 0 评论 -
判断数据类型的方式有哪些(原理及优缺点)?(typeof / instanceof 核心原理 / constructor / Object.prototype.toString)
1、typeof 操作符2、instanceof3、constructor构造器4、Object.prototype.toString5、判断一个对象是否为数组?6、通过对象的原型方法判断类型的应用原创 2023-04-04 11:50:55 · 1220 阅读 · 0 评论 -
判断一个对象是否为数组的方法有哪些?
/ 方法一:通过对象的原型方法判断// 方法二:判断是否属于数组实例// 方法三:获取它的constructor构造函数// 方法四:数组自身的判断方法。原创 2023-07-24 16:33:47 · 791 阅读 · 0 评论 -
JS预解析/预编译、var和function变量提升;全局对象和活动对象、全局变量和局部变量、全局函数和局部函数;作用域和作用域链;
JavaScript是解释性语言,解释性是指逐行解析、逐行执行。在JavaScript真正被解析之前,JS解析引擎会把整个文件进行预处理,以消除一些歧义。这个预处理的过程就称为预编译。原创 2019-07-15 14:40:03 · 415 阅读 · 1 评论 -
关于 let/var/const 的常见面试题
报错 Missing initializer in const declaration ==》报错 s is not defined ==》原创 2023-07-19 15:50:44 · 414 阅读 · 0 评论 -
用Promise实现尽可能快速地将所有图片下载完成
用Promise来实现就是,先并发请求3个图片资源,这样可以得到3个Promise,组成一个数组promises,然后不断调用Promise.race来返回最快改变状态的Promise,然后从数组promises中删掉这个Promise对象,再加入一个新的Promise,直到全部的url被取完,最后再使用Promise.all来处理一遍数组promises中没有改变状态的Promise。有8个图片资源的url,已经存储在数组urls中。但有一个要求,任何时刻同时下载的链接数量不可以超过3个。原创 2023-07-05 16:49:38 · 345 阅读 · 0 评论 -
用Promise封装一个异步加载图片的方法
【代码】用Promise封装一个异步加载图片的方法。原创 2023-07-05 16:46:44 · 267 阅读 · 0 评论 -
程序输出案例:理解 js执行机制
resolve()})})解析:new Promise 里的参数函数,是同步被执行的,故而先输出 1,2resolve 后还需要等待进入下一个事件循环。then 把参数函数推入微任务队列,并不直接执行。输出 4,接着事件循环进入下一轮,输出 3答案:1 2 4 3resolve(6);});resolve(2);});}));});原创 2023-07-05 16:10:18 · 185 阅读 · 0 评论 -
用Promise实现传入的函数顺序执行的逻辑
实现mergePromise函数,把传进去的数组按顺序先后执行,并且把返回的数据先后放到数组data中。这道题主要考察用Promise控制异步流程,让这些函数一个执行完,再执行下一个。因为对于异步函数来说,并不会按顺序执行完一个,再执行后一个。原创 2023-07-05 16:06:54 · 508 阅读 · 0 评论 -
用Promise实现红绿灯不断交替亮灯的逻辑
意思就是3秒执行一次red函数,2秒执行一次green函数,1秒执行一次yellow函数;如何让三个灯不断交替重复亮灯?意思就是按照这个顺序一直执行这3个函数,这步可以利用递归来实现。红灯3秒亮一次,绿灯1秒亮一次,黄灯2秒亮一次;原创 2023-07-05 15:59:46 · 603 阅读 · 0 评论 -
对Promise的理解以及Promise的基本用法
一、理解Promise① 定义② 优点③ 特点④ 缺点二、Promise基本用法① resolve函数的作用② reject函数的作用③ then方法④一个异步加载图片的例子三、Promise的其他常见方法①Promise.prototype.then()②Promise.prototype.catch()③Promise.prototype.finally()④Promise.all()⑤Promise.race()四、原创 2020-07-18 16:11:12 · 5508 阅读 · 1 评论 -
Promise的常见面试题
一、对Promise的理解以及Promise的基本用法二、Promise的其他常见方法三、Promise的常见面试题① 多个.catch② 多个.catch(不懂)③ 链接.then和.catch(不懂)④ 链接.catch(不懂)⑤ 多个.catch(不懂)⑥.then之间的流程⑦.then之间的流程⑧.then之间的流程⑨.then和.catch之间的流程(不懂)⑩ 基础输出题11、用Promise实现红绿灯不断交替亮原创 2023-07-04 14:14:31 · 1874 阅读 · 0 评论 -
Promise的其他常见方法
一、对Promise的理解以及Promise的基本用法二、Promise的其他常见方法① Promise.prototype.then()② Promise.prototype.catch()③ Promise.prototype.finally()④ Promise.all()⑤ Promise.race()三、Promise的常见面试题原创 2023-07-04 14:13:07 · 422 阅读 · 0 评论 -
ES6:数组去重的方法
Set 是 ES6 引入的一种数据结构,其中的元素是唯一的,不允许重复。可以通过将数组转换为Set,然后再将 Set 转换回数组来实现去重。将数组转换为 Set,然后再将 Set 转换回数组来实现去重。利用 filter() 方法遍历数组,筛选出不重复的元素。遍历数组,将不重复的元素添加到累积的结果数组中。:因为该结构中的元素是唯一的,不允许重复。使用 reduce() 方法遍历数组,将不重复的元素添加到累积的结果数组中。遍历数组,筛选出不重复的元素。排序,然后用一个指针从第。原创 2020-06-27 15:36:24 · 5927 阅读 · 1 评论 -
数组的常用属性和方法、哪些方法可以改变原数组
unshift() 方法将把它的参数插入arrayObject 的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。请注意,splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。如果设置的值比它的当前值大,数组将增大,新的元素被添加到数组的尾部,它们的值为。如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。原创 2019-03-18 14:21:33 · 6421 阅读 · 1 评论 -
判断对象中是否包含某个key
判断对象中是否包含某个key原创 2022-06-09 16:44:15 · 453 阅读 · 0 评论 -
ES6常用——箭头函数
箭头函数简化了函数的定义var f = v => v;变量名 = 参数 =>函数体;以前函数的定义:一、函数表达式f();var f = function(){ return 888; }f();简化之后:var f = () => 888;var f= funciton(n1,n2){ list(n1,n2) }简化之后:v...原创 2020-07-20 12:26:09 · 112 阅读 · 0 评论 -
ES6 —— 数字验证Number.isFinite、NaN验证、整数验证、整数和浮点数的转换、整数取值安全范围--05
前端编程工作中对数字的操作是非常多的,如果你对数字操作的不好,就很难写出令人惊奇的程序,所以我们这节课重点学习一下ES6新增的一些数字操作方法。二进制和八进制二进制和八进制数字的声明并不是ES6的特性,我们只是做一个常识性的回顾,因为很多新人小伙伴会把他们当成字符串或者不知道是什么,所以这算是赠送的知识点。二进制声明:0B二进制的英文单词是Binary,二进制的开始是0(零)...原创 2020-07-22 00:06:02 · 403 阅读 · 0 评论 -
ES6——字符串模板、字符串查找 includes、判断某个开头和结尾是否存在某个字符串、复制字符串--04
字符串模版的出现让我们再也不用拼接变量了,而且支持在模板里有简单计算操作。一、字符串模版先来看一个在ES5下我们的字符串拼接案例:let jspang='技术胖';let blog = '非常高兴你能看到这篇文章,我是你的老朋友'+jspang+'。这节课我们学习字符串模版。';document.write(blog);ES5下必须用+jspang+这样的形式进行拼接,...原创 2020-07-21 23:25:17 · 271 阅读 · 0 评论 -
ES6 —— 数组常用方法(entries、for...of、fill、find、Array.of、Array.from)
在 JavaScript 中,方法用于返回一个给定对象自身可枚举属性的键值对数组。这个方法返回的数组中,每个元素都是一个包含键值对的数组。返回一个数组的迭代对象,该对象包含数组的键值对 (key/value)。迭代对象中数组的索引值作为 key, 数组元素作为 value。使用方法可以非常方便地将对象的键值对转换为数组形式,这在需要迭代处理对象属性时非常有用。例如,我们可以结合和数组的forEach方法来遍历对象的键值对数组。for...of。原创 2020-07-20 14:40:28 · 306 阅读 · 1 评论 -
ES6——扩展运算符和 reset 运算符--03
扩展运算符和rest运算符,它们都是…(三个点)它们可以很好的为我们解决参数和对象数组未知情况下的编程,让我们的代码更健壮和简洁。一、 对象扩展运算符(…):当编写一个方法时,我们允许它传入的参数是不确定的。这时候可以使用对象扩展运算符来作参数,看一个简单的列子:function jspang(...arg){console.log(arg[0]);console.lo...原创 2020-07-21 23:22:31 · 131 阅读 · 0 评论 -
ES6——数组、对象和字符串的解构赋值--02
ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为① 简单的数组解构以前,为变量赋值,我们只能直接指定值。而现在我们可以用数组解构的方式来进行赋值。上面的代码表示,可以。② 数组模式和赋值模式统一可以简单的理解为等号左边和等号右边的形式要统一,如果不统一解构将失败。如果等号两边形式不一样,很可能获得 undefined 或者直接报错。③ 解构的默认值解构赋值是允许你使用默认值的,先看一个最简单的默认的例子。原创 2020-07-21 22:24:07 · 684 阅读 · 1 评论 -
ES6 ——JSON数组格式转换成数组Array.from 、文本或者变量转换成数组Array.of、找到符合条件的数组元素find
ES6 ——JSON数组格式转换成数组Array.from 、文本或者变量转换成数组Array.of、找到符合条件的数组元素find原创 2020-07-21 23:34:42 · 2734 阅读 · 1 评论 -
ES6 —— 填充数组fill( )、数组的遍历 for…of、获取数组索引arr.keys()、获取数组的内容和索引arr.entries()
fill( )实例方法fill() 也是一个实例方法。它的作用是把数组进行填充。它接收三个参数第一个参数是填充的变量第二个是开始填充的位置第三个是填充到的位置(不填则默认是数组的长度)。上边的代码是把数组从第二位到第五位用 a 进行填充。这种形式比 ES5 的 for 循环要简单而且高效先来看一个最简单的for…那我们可以使用下面的代码输出数组索引可以看到这时的控制台就输出了0 1 2,也就是数组的索引。输出数组索引。原创 2020-07-22 00:09:07 · 1227 阅读 · 1 评论 -
ES6 -- 对象和函数的函数解构、in 运算符、常见的数组的遍历方法(forEach、filter、some、map、every、join)09
我们在前后端分离时,后端经常返回来JSON格式的数据,前端的美好愿望是直接把这个JSON格式数据当作参数,传递到函数内部进行处理。通过提供一个操作函数,我们可以轻松地对数组的每个元素进行计算或转换,并获得一个新的数组,其中包含了这些操作的结果。总之,数组的函数解构是一种方便的语法,可以快速地从数组中提取元素并创建变量。总之,对象的函数解构是一种方便的语法,可以快速地从对象中提取属性并创建变量,但需要注意对方法的处理方式。该方法接受一个回调函数作为参数,该回调函数会被依次应用于数组中的每个元素。原创 2020-05-07 10:23:48 · 261 阅读 · 1 评论 -
ES6——声明方式--01
字面理解ES6的三种声明方式:var:它是variable的简写,可以理解成变量的意思。 let:它在英文中是“让”的意思,也可以理解为一种声明的意思。 const:它在英文中也是常量的意思,在ES6也是用来声明常量的,常量你可以简单理解为不变的量。var在ES6里是用来升级全局变量的let是局部变量声明,let是防止你的数据污染的 (同一个作用域不能声明相同的变量)习惯用...原创 2020-07-21 21:56:54 · 75 阅读 · 0 评论