
JS
云Girl
这个作者很懒,什么都没留下…
展开
-
Set 和 Map
Set 和Map结构理解原创 2023-01-31 13:07:47 · 1073 阅读 · 0 评论 -
两个数组,找出他们相同的项,并把相同项在各自数组中去掉
例如: a =[1, 2, 3, 4] , b =[2, 3, 6],那么我想要得到的结果是a=[1,4],b=[6] const a = [1, 2, 3, 4] const b = [2, 3, 6] const filterArr = (arr1,arr2) => { const newArr = JSON.parse(JSON.stringify(arr2)) arr1.forEach((item) => { if (newArr.indexOf(i原创 2021-03-25 13:42:56 · 586 阅读 · 1 评论 -
JS算法题
// 算法题 const getArrOrTime = (oldVvalue: any) => { // 首先oldVvalue判断是字符串还是数组 if (oldVvalue instanceof Array) { // true 是数组 } else { // 就是字符串 // 将字符串转成数组 const timeArr = oldVvalue.split('').map(v => +v); // 接下来先截取.原创 2021-03-02 17:25:37 · 185 阅读 · 2 评论 -
JS运行机制
JS的单线程单线程是JS语言的一大特点,通俗的理解就是同一时间只能做一件事情。为什么JS是单线程呢?这与它的用途有关,作为浏览器脚本语言,JS的主要用途是与用户互动,以及操作DOM。如果是多个线程同时操作一个DOM,比如一个线程需要隐藏DOM,一个线程需要显示DOM,就会出现混乱,不知道先执行的哪个,达不到想要的效果,但如果是单线程,就很简单的实现了我们想要的效果,所以为了避免复杂性,就诞生了J...原创 2020-03-12 17:55:13 · 180 阅读 · 0 评论 -
关于渲染机制的面试题
什么是DOCTYPE及作用 DOCTYPE是用来声明文档类型和DTD规范的,一个主要的用途便是验证文件的合法性,如果文件代码不合法,那么浏览器解析时就会出现一些差错。 DTD(document type definition ,文档类型定义)是一系列的语法规则,用来定义XML或(X)HTML的文件类型。浏览器会使用它来判断文档的类型,决定使用何种协议来解析以及切换浏览器的模式。 常见的...原创 2020-03-12 15:30:52 · 770 阅读 · 0 评论 -
页面性能
一般面试,问页面性能方面的题,就会被问到提升页面性的方法有哪些?提升页面性能的方法利用浏览器缓存(这里的话可能会被问到缓存的分类和缓存的原理,下面会讲到的)资源呀所合并,减少HTTP请求非核心代码异步加载(这里可能会被问到 异步加载的方式和异步加载的区别,下面也会讲到的)使用CDNCDN是Content Delivery Network的简称,即“内容分发网络”的意思。一般我们所说的...原创 2020-03-12 22:40:25 · 182 阅读 · 0 评论 -
前端错误监控类
前端错误的分类即时运行错误:代码错误捕获方式:(1)try…catch(2)window.onerror资源加载错误(比如图片资源加载不出来等)捕获方式:(1)object.onerror(2)performance.getEntries()获取加载完资源的数组,可以用docuemnt.getElementsByTagName(“img”) - performance.getE...原创 2020-03-13 13:21:41 · 185 阅读 · 0 评论 -
JS中深拷贝和浅拷贝
1、栈和堆JS引擎中对变量的存储主要有两种,栈内存和堆内存栈内存:主要存储JS中的基本数据类型的变量,包括String、Number、Boolean、undefined、Null、 Symbol和对象变量的指针。栈内存中的变量一般都是已知大小或者有范围上限的,所以栈内存都是自动分配内存和自动释放内存。堆内存:主要存储JS中的引用数据类型,包括Object、Array、function,他们的地址指针是存储于栈中的。堆内存中的变量大小一般是不知道的,所以堆内存是动态分配内存,内存大小不一,也不会自动释原创 2020-06-05 15:37:48 · 344 阅读 · 0 评论 -
script标签中的defer和async属性的区别
如果script标签中没有defer或async属性,浏览器在渲染中遇到script标签就会停止渲染,下载执行js代码,等待JS执行完毕后,浏览器再从中断的地方恢复渲染。这就会造成浏览器阻塞,如果你想首屏渲染的越快,就越不应该在首屏就加载 JS 文件,这也是都建议将 script 标签放在 body 标签底部的原因。当然在当下,并不是说 script 标签必须放在底部,因为你可以给 script...原创 2020-04-15 12:44:25 · 1014 阅读 · 0 评论 -
理解 cookie、session、localStorage 和 sessionStorage 区别及应用场景
cookie 和 sessioncookie是存储在客户端浏览器中的,一般由服务器端生成,用于标识用户身份。session是存储在服务器端,用于跟踪浏览器用户身份的会话方式。他们的区别:1、cookie存储在浏览器端,session存储在服务器端。2、使用方式(1)cookie机制:如果不在浏览器中设置过期时间,cookie被保存在内存中,浏览器关闭cookie数据不存在,这种cook...转载 2020-04-13 14:55:05 · 571 阅读 · 0 评论 -
前端路由的实现原理解析
什么是前端路由首先我们先来了解一下路由是什么?路由就是用来跟后端服务器进行交互的一种方式,根据不同的url地址展现不同的内容或页面。路由最开始是由后端来控制的,后来由于ajax(异步刷新技术)的出现,带来无刷新的加载数据,也就出现了单页面应用(SPA)。url变化引起视图更新,但是无需刷新页面,...原创 2020-04-10 18:23:31 · 410 阅读 · 1 评论 -
编程题
1.已知数据结构users,请实现语法支持user.unique能够按照name字段去重,并输出结构为:[“a”,“b”] var users=[{ id:1,name:"a" },{ id:2,name:"a" },{ id:3,name:"b" },{ id:4,name:"v" }] Array.prototype.uni...原创 2020-03-16 00:22:11 · 399 阅读 · 2 评论 -
闭包
闭包概念:指有权限访问另一个函数作用域中的变量的函数。也就是函数内部可以引用函数外部的参数和变量,参数和变量不会被垃圾回收机制回收。创建闭包的常见方式: 在一个函数内部创建另一个函数。例如简单的闭包的创建:function getName(){ var name = '张三'; return function (){ // 这个函数就是一个闭包 console.log("nam...原创 2020-03-19 22:38:33 · 82 阅读 · 0 评论 -
原型(prototype)、__proto__、constructor、原型链
_ _ proto _ ___ proto __和constructor属性是对象所独有的,当构造函数创建一个实例后,该实例内部将包含一个指针,指向构造函数的原型对象(fn.protorype),这个指针就是 __ proto __.作用:当访问一个对象的属性时,如果该对象内不存在这个属性,就去它的 __ proto 属性所指向的那个对象(父对象)里找,一直找,直到 proto 属性的重点为n...原创 2020-03-19 18:01:57 · 146 阅读 · 0 评论 -
继承-js
1、 call apply bind的区别相同点:1:改变this的指向;2:可用来实现继承3:第一个参数都是this要指向的对象不同点:1:call和bind可以传很多参数,apply第二个参数必须是数组;2: call,apply是立即执行,bind是需要调用才执行;call() 的用法 function Father(eat){ this.eat=eat...原创 2019-10-22 13:59:06 · 140 阅读 · 0 评论