03 2022 档案

摘要:3-31 两数之和-简单题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = 阅读全文
posted @ 2022-03-31 22:54 林见夕 阅读(45) 评论(0) 推荐(0)
摘要:3-30 为什么要使用 vue3, vue3 带来了什么好处?Vue3 采用了 Proxy 做数据的拦截,因为 Proxy 是懒执行的,所以没有像 Vue2 一样上来需要递归的去劫持属性的 get set, 这样带来的好处就是提升了更好的性能 Vue3 在编译阶段做的优化,由于模版语法带来的灵活性的限制,所以 vue3 在模版编译方面采用了 只编译动态属性和动 阅读全文
posted @ 2022-03-30 22:54 林见夕 阅读(745) 评论(0) 推荐(0)
摘要:3-30 说一下Vue的$nextTick原理?vue.nextTick()方法的使用详解: https://blog.csdn.net/zhouzuoluo/article/details/84752280 vue源码解析:nextTick: https://segmentfault.com/a/1190000020049857 原理 Vue是 阅读全文
posted @ 2022-03-30 22:43 林见夕 阅读(225) 评论(0) 推荐(0)
摘要:3-29 寄生组合式继承S继承的原理、方式和应用: https://www.cnblogs.com/yunshangwuyou/p/11968539.html //寄生组合式继承(寄生式+原型:通过借用函数来继承属性,通过原型链的混成形式来继承方法) function inheritObject(o) { //声明一个过渡 阅读全文
posted @ 2022-03-29 21:37 林见夕 阅读(104) 评论(0) 推荐(0)
摘要:3-26 组合继承组合继承实现原理 核心:结合了原型链继承和构造函数继承两种模式的优点,传参和复用,在子类构造函数中执行父类构造函数,在子类原型上实例化父类 缺点 内存浪费 子类原型上有一份多余的父类实例属性,因为父类构造函数被调用了两次,生成了两份,而子类实例上的那一份屏蔽了子类原型上的 function Pare 阅读全文
posted @ 2022-03-26 20:59 林见夕 阅读(43) 评论(0) 推荐(0)
摘要:3-25 笛卡尔积算法问题:假设集合 A={a, b},集合 B={0, 1, 2}, 则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。 求当 A={a, b, ..., n}, B={0, 1, 2, ..., n}时的笛卡尔积. 复习reduce 阅读全文
posted @ 2022-03-25 11:12 林见夕 阅读(400) 评论(0) 推荐(0)
摘要:3-24 借用构造函数继承复习 call 的基本实现原理 call 能改变函数的 this call 的第一个参数是 this, 后面的参数都是无限的 const obj = { name: "jack", }; function getB(x, y) { console.log(this, x, y); } Functio 阅读全文
posted @ 2022-03-24 21:59 林见夕 阅读(114) 评论(0) 推荐(0)
摘要:3-23 数组拆分问题:有一个数组 arr = [a1, a2, a3, b1, b2, b3, c1, c2, c3...], 通过算法将数组进行拆分, 转化为如下格式的数组 [a1, b1,c1], [a2, b2, c2], [a3, b3, c3]并实现通用公式. 总体思路:将数组的 n-1 下标下的内容,挑 阅读全文
posted @ 2022-03-23 23:24 林见夕 阅读(69) 评论(0) 推荐(0)
摘要:3-23 请手动封装 fn(1)(2) 返回 3 的结果,要考虑参数会增加或减少的情况,例如:fn(1)(2)(3) 返回 6https://juejin.cn/post/6850418115042836487 https://blog.csdn.net/double_sweet1/article/details/122786636?utm_medium=distribute.pc_aggpage_search_resul 阅读全文
posted @ 2022-03-23 08:42 林见夕 阅读(154) 评论(0) 推荐(0)
摘要:3-18 Vue 的父组件和子组件生命周期钩子函数执行顺序?父子组件挂载渲染过程 子组件更新过程: 影响到父组件: 父beforeUpdate → 子beforeUpdate->子updated → 父updated 不影响父组件: 子beforeUpdate → 子updated 父组件更新过程: 影响到子组件: 父beforeUpdate → 子befo 阅读全文
posted @ 2022-03-22 23:34 林见夕 阅读(782) 评论(0) 推荐(0)
摘要:3-22 n个台阶 一次只能走 一步或者两步,问有多少种走法最重要的就是最后一步:如果走一步就需要 f(n-1)种,如果走两步就需要 f(n-2)种 走一个台阶:1种-f(1) 走两个台阶:2种-f(2) 三个台阶: 先走一个台阶f1和最后一次走两个台阶:f(1) 先走二个台阶f2和最后一次走一个台阶:f(2) f(3)=f(1)+f(2) 四个台阶: 先走 阅读全文
posted @ 2022-03-22 23:13 林见夕 阅读(289) 评论(0) 推荐(0)
摘要:3-22 跨域是什么?有哪些解决方式?跨域出现的原因,是因为浏览器的同源策略导致,即 协议 域名 端口号 不一致, 如何解决 代理服务器 nginx 使用代理服务,帮助我们请求接口,在响应回来给到浏览器 jsonp 利用 script 标签,天然跨域特性 ,仅支持 get CORS 服务器端开启 CORS proxy 代理 等 阅读全文
posted @ 2022-03-22 22:32 林见夕 阅读(45) 评论(0) 推荐(0)
摘要:2-10 说一下vue-router的原理是什么?实现原理:vue-router 的原理就是更新视图而不重新请求页面 vue-router 可以通过 mode 参数设置为三种模式:hash 模式、history 模式、abstract 模式。 hash 模式。默认是 hash 模式,基于浏览器 history api,使用 window.addEv 阅读全文
posted @ 2022-03-22 22:30 林见夕 阅读(702) 评论(0) 推荐(0)
摘要:3-22 如何确定首屏加载时间?如何确定首屏加载时间? 首屏时间的定义: 浏览器显示第一屏页面所消耗的时间,以 800x600 像素尺寸为标准,从开始加载到浏览器页面显示高度达到 600 像素且此区域有内容显示的时间。 也就是说用户能够看到区域内所有元素加载完的时间。 一个页面的“总加载时间”要比“首屏时间”长,但对于最终用户体验 阅读全文
posted @ 2022-03-22 22:26 林见夕 阅读(695) 评论(0) 推荐(0)
摘要:3-22 Css实现自适应屏幕宽度的正方形方式一:padding + 百分比 <style> html, body { margin: 0; padding: 0; } .outer { width: 20%; height: 0; padding-bottom: 20%; background-color: red; } </style> 阅读全文
posted @ 2022-03-22 21:31 林见夕 阅读(219) 评论(0) 推荐(0)
摘要:3-22 原型链继承核心:实例化父类函数之后,将其拷贝到子类的原型prototype上。继承父类之后,子类可以使用父类的实例属性以及父类的原型属性 优点:从已有的对象衍生新的对象,不需要创建自定义类型 缺点1,新实例向父类构造函数传参,不符合面向对象编程的规则 function Person(name, age, jo 阅读全文
posted @ 2022-03-22 12:35 林见夕 阅读(40) 评论(0) 推荐(0)
摘要:3-21 三列布局的其他方法补充引言 前边说了三列布局的三种方法,博主经过了解发现,原来还有其他的办法,今天我们就来聊一聊其他的方法 方法一:calc实现三列布局 css .outer{ height: 300px; } .left{ float: left; width: 100px; height: 300px; backgr 阅读全文
posted @ 2022-03-21 14:22 林见夕 阅读(57) 评论(0) 推荐(0)
摘要:3-21 实现1物理像素边框// 实现1物理像素边框 .border-1px-inenr(@color) { &::after { content: ''; position: absolute; left: 0; width: 100%; height: 1px; background-color: @color; @med 阅读全文
posted @ 2022-03-21 14:20 林见夕 阅读(52) 评论(0) 推荐(0)
摘要:3-21 小程序宿主环境小程序宿主环境 1. 小程序宿主环境包含的内容 通信机制 运行机制 组件 api 1.通信机制 小程序中的通信的主体是渲染层 和逻辑层,其中 WXML 模版和 WXSS 样式工作在渲染层 js 脚本工作在逻辑层 2. 运行机制 小程序启动的过程 把小程序的代码包下载到本地 解析 app.json 全 阅读全文
posted @ 2022-03-21 11:31 林见夕 阅读(95) 评论(0) 推荐(0)
摘要:3-20 什么情况下出现浏览器分层?浏览器层合成与页面渲染优化: https://juejin.cn/post/6844903966573068301 3D transforms:translate3d、translateZ 等 video、canvas、iframe 等元素 通过 Element.animate() 实现的 opac 阅读全文
posted @ 2022-03-20 22:49 林见夕 阅读(123) 评论(0) 推荐(0)
摘要:3-20 什么是 WXML 模版什么是 WXML 模版 1. 什么是 WXML WXML 是小程序框架设计的一套标签语言,用来构建小程序页面的结构,其作用类似网页开发中的 HTML 2. WXML 和 HTML 的区别 标签名不相同 HTML(div,span,img,a) WXML (wiew, text, image, nav 阅读全文
posted @ 2022-03-20 21:14 林见夕 阅读(216) 评论(0) 推荐(0)
摘要:3-20 小程序和普通网页开发等区别?小程序和普通网页开发等区别? 1.运行环境不同 网页运行在浏览器环境中 小程序运行在微信环境中 2. API 不同 由于运行环境等不同,所以小程序中,无法调用 DOM 和 BOM 的 api 但是小程序中可以调用微信提供的各种 API,例如: 地理定位 扫码 支付 3. 开发模式不同 网页开发模式: 阅读全文
posted @ 2022-03-20 17:11 林见夕 阅读(194) 评论(0) 推荐(0)
摘要:3-20 说说 SSR?1. 什么是 srr 在讲服务度渲染之前,我们先回顾一下页面的渲染流程: 浏览器通过请求得到一个HTML文本 渲染进程解析HTML文本,构建DOM树 解析HTML的同时,如果遇到内联样式或者样式脚本,则下载并构建样式规则(stytle rules),若遇到JavaScript脚本,则会下载执行脚本。 阅读全文
posted @ 2022-03-20 00:38 林见夕 阅读(423) 评论(0) 推荐(0)
摘要:3-17  Vue 中的 key 有什么作用?1、虚拟DOM的key的作用: key是虚拟DOM对象的标识,当状态中的数据发生变化时,Vue会根据【新数据】生成【新的虚拟DOM】, 随后Vue进【新虚拟DOM】与【旧虚拟DOM】的差异比较,比较规则如下: 2、对比规则: (1)旧虚拟DOM中找到了与新虚拟DOM相同的key: 若虚拟DOM中内容 阅读全文
posted @ 2022-03-17 16:18 林见夕 阅读(140) 评论(0) 推荐(0)
摘要:3-17 说一下关于tree-shaking的原理?(webpack部分)Tree-Shaking 实现原理:https://zhuanlan.zhihu.com/p/403901557#:~:text=Tree-Shaking%20%E6%98%AF%E4%B8%80%E7%A7%8D%E5%9F%BA%E4%BA%8E%20ES%20Module%20%E8%A7%8 阅读全文
posted @ 2022-03-17 16:12 林见夕 阅读(59) 评论(0) 推荐(0)
摘要:3-16 javascript精度问题javascript 历史的浮点计算精度问题 加法 plus function plus(arg1, arg2) { let r1, r2, m; try { r1 = arg1.toString().split(".")[1].length; } catch (e) { r1 = 0; } try 阅读全文
posted @ 2022-03-16 23:22 林见夕 阅读(31) 评论(0) 推荐(0)
摘要:3-16 如何类数组转化为数组?Array.form [...] Array.prototype.slice.call Array.prototype.map.call 阅读全文
posted @ 2022-03-16 20:36 林见夕 阅读(94) 评论(0) 推荐(0)
摘要:3-16 BFC是什么?触发BFC的条件是什么?有哪些应用场景?什么是BFC?看这一篇就够了 https://blog.csdn.net/sinat_36422236/article/details/88763187 简单来说 BFC (块级格式化上下文) 就是指定页面的盒子采用何种策略模式渲染盒子中的内容, 下列方式会创建块格式化上下文: 根元素或包含根元素的 阅读全文
posted @ 2022-03-16 15:00 林见夕 阅读(64) 评论(0) 推荐(0)
摘要:3-15 单例模式单例模式 单例模式,是一种常见的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式,可以保证系统中采用该模式的类只有一个实例。即:一个类只有一个对象实例。 因此,在实现单例模式的要点是创建一个类,而这个类无论怎么 new 只能取得同一个对象。 代码 class Singleto 阅读全文
posted @ 2022-03-15 21:30 林见夕 阅读(37) 评论(0) 推荐(0)
摘要:3-15 回调函数和任务队列的区别回调函数 回调函数是作为参数传给另一个函数的函数,这个函数会在另一个函数执行完成后执行 任务队列 任务队列是一个事件的队列,IO设备完成一项任务后,就在队列中添加一个事件,表示相关的异步任务可以进入执行栈中了 同步任务:主线程上排队执行的任务,前一个任务执行完成后才能执行下一个任务 异步任务:不进入 阅读全文
posted @ 2022-03-15 16:09 林见夕 阅读(123) 评论(0) 推荐(0)
摘要:3-15 常用的页面优化实现方案?一、页面内容优化 减少http请求次数 减少DNS查询次数 避免页面跳转 缓存ajax 延迟加载(一般用在图片多的页面中,滚动时才加载) 预加载 减少DOM元素数量 减少iframe数量 避免404 关键资源个数越多,首次页面加载时间就会越长 关键资源的大小,内容越小,下载时间越短 优化白屏:使用S 阅读全文
posted @ 2022-03-15 16:01 林见夕 阅读(352) 评论(0) 推荐(0)
摘要:3-14 说明一下JS封装的原理封装 封装是面向对象的三个基本特征之一,将现实世界的事物抽象成计算机领域中的对象, 对象同时具有属性和行为(方法),这种抽象就是封装. 重要特性 数据隐藏。对象只对外提供与其它对象交互的必要接口,而将自身的某些属性和实现细节对外隐藏, 通过这种方式,对象对内部数据提供了不同级别的保护, 以防止程序中 阅读全文
posted @ 2022-03-14 19:21 林见夕 阅读(113) 评论(0) 推荐(0)
摘要:3-14 在哪个生命周期内调用异步请求?(Vue部分)如果 使用的是 spa 的渲染模式:你可以使用 create 发送请求,这是在请求数据量不大的情况下,使用,如果不能保证这个数据,不会出现问题,建议在 mounted 中发送 如果 使用的是 ssr 的渲染模式;beforeCreate 和 created 会在服务端渲染的时候被调用,在 befor 阅读全文
posted @ 2022-03-14 15:34 林见夕 阅读(281) 评论(0) 推荐(0)
摘要:3-14 minimist.jsconst args = require('minimist')(process.argv.slice(2)) console.log(process.argv.slice(2)) console.log(args) // lijiaming jm-npm-package % node npm/np 阅读全文
posted @ 2022-03-14 15:17 林见夕 阅读(111) 评论(0) 推荐(0)
摘要:3-14 big.js基本用法 文档链接: http://mikemcl.github.io/big.js/legacy/v6.0.x.html#dp yarn add big.js @types/big.js import { plus, minus, times, div } from "big.js"; // 加 阅读全文
posted @ 2022-03-14 14:59 林见夕 阅读(660) 评论(0) 推荐(0)
摘要:3-13 Vue 组件间通信有哪几种方式?vue2: props $emit vuex $attrs 和 $listeners provide 和 inject parent 和 children $refs $root .sync slot 全局事件总线 vue3: props $emit vuex pinia provide 和 inj 阅读全文
posted @ 2022-03-13 22:33 林见夕 阅读(73) 评论(0) 推荐(0)
摘要:3-13 直接给一个数组项赋值,Vue 能检测到变化吗?由于 JavaScript 的限制,Vue2 不能检测到以下数组的变动: 当你利用索引直接设置一个数组项时,例如: vm.items[indexOfItem] = newValue 当你修改数组的长度时,例如: vm.items.length = newLength 为了解决第一个问题,Vue 提供 阅读全文
posted @ 2022-03-13 22:25 林见夕 阅读(213) 评论(0) 推荐(0)
摘要:3-12 CDN缓存一、CDN 是什么? http 缓存是浏览器端缓存,cdn 是服务器端缓存。 举个例子来说明 cdn 的作用:cdn 就是代理。厂家给商家发货,你从商家买货,商家就是 cdn,很方便。 二、CDN 怎么缓存? 和 Http 类似,客户端请求数据时,先从本地缓存查找,如果被请求数据没有过期,拿过来用, 阅读全文
posted @ 2022-03-12 18:50 林见夕 阅读(100) 评论(0) 推荐(0)
摘要:3-12 什么是面向切面编程(AOP)?主要就是两个函数,在Function的原型上加上before与after,作用就是字面的意思,在函数的前面或后面执行,相当于无侵入把一个函数插入到另一个函数的前面或后面,应用得当可以很好的实现代码的解耦,js中的代码实现如下: // function dome() { // var a = 12 + 阅读全文
posted @ 2022-03-12 17:52 林见夕 阅读(82) 评论(0) 推荐(0)
摘要:3-12 使用TS的优势有哪些?更可靠:TS引入类型定义(进行类型检查)和编译器,可以避免JavaScript大多数runtime错误,更可靠,易维护; 更清晰:TS中显式类型声明可以提升代码可读性,代码校验可以全部交给编译器负责; 更广泛:TypeScript是JavaScript的超集,可以在TypeScript代码中混合使用 阅读全文
posted @ 2022-03-12 16:52 林见夕 阅读(1715) 评论(0) 推荐(0)
摘要:3-12 webpack 里面的插件是如何实现的?webpack 插件 是一个 函数,这个函数的原型上必须携带一个 apply 的方法,供给 webpack 使用,webpack 会调用 apply 并传入一个 compiler 关注核心:Compiler和Compilation 在开发Plugin时最常用的两个对象是Compiler和Compil 阅读全文
posted @ 2022-03-12 16:27 林见夕 阅读(305) 评论(0) 推荐(0)
摘要:3-11 说一下mysql和mongodb的区别?1、数据库模型 mongodb-非关系型; mysql-关系型 2、存储方式 mongodb-以类JSON的文档的格式存储; mysql-不同引擎有不同的存储方式; 3、查询语句 mongodb-MongoDB查询方式(类似JavaScript的函数); mysql-SQL语句; 4、数据处理方式 阅读全文
posted @ 2022-03-11 20:52 林见夕 阅读(595) 评论(0) 推荐(0)
摘要:3-11 为什么组件中的 data 必须是一个函数,然后 return 一个对象,而 new Vue 实例里,data 可以直接是一个对象?为什么根实例的data是一个对象? new Vue()中只有一个data属性,共用该data。 为什么组件中的data必须是一个函数? 因为如果data是一个对象,对象是引用类型,那复用的所有组件实例都会共享这些数据,就会导致修改一个组件实例上的数据,其他复用该组件的实例上对应的数据也会被修改。 如 阅读全文
posted @ 2022-03-11 20:44 林见夕 阅读(359) 评论(0) 推荐(0)
摘要:3-11 如何判断一个对象是不是数组从原型入手,Array.prototype.isPrototypeOf(obj); 也可以从构造函数入手,obj instanceof Array Object.prototype.toString.call(obj); Array.isArray()方法 阅读全文
posted @ 2022-03-11 11:39 林见夕 阅读(38) 评论(0) 推荐(0)
摘要:3-10 基础面试题1. arr.filter(Boolean) 的结果是 [0, 1, 2, 3, -1, null, "", 3, 5, 7].filter(Boolean); 等同与 [0, 1, 2, 3, -1, null, "", 3, 5, 7].filter((item) => Boolean(item 阅读全文
posted @ 2022-03-10 21:50 林见夕 阅读(75) 评论(0) 推荐(0)
摘要:3-10 关于对 Vue 项目进行优化,你有哪些方法?1)代码层面的优化 v-if 和 v-show 区分使用场景 computed 和 watch 区分使用场景 v-for 遍历必须为 item 添加 key,且避免同时使用 v-if 长列表性能优化 事件的销毁 图片资源懒加载 路由懒加载 第三方插件的按需引入 优化无限列表性能 服务端渲染 SSR 阅读全文
posted @ 2022-03-10 21:40 林见夕 阅读(117) 评论(0) 推荐(0)
摘要:3-10 说说你理解的node 中间层怎样做的请求合并转发?1)什么是中间层 就是前端—请求—> nodejs 请求 >后端 响应—>nodejs–数据处理—响应 >前端。这么一个流程,这个流程的好处就是当业务逻辑过多,或者业务需求在不断变更的时候,前端不需要过多当去改变业务逻辑,与后端低耦合。前端即显示,渲染。后端获取和存储数据。中间层处理数据结构,返回给 阅读全文
posted @ 2022-03-10 21:31 林见夕 阅读(659) 评论(0) 推荐(0)
摘要:3-10 实现拖拽缩放盒子的效果需求讲解 画一个矩形,拖拽矩形的4个角可以将矩形缩放(缩小到顶点时,顶点需要固定),在矩形上按住拖动,可以移动该矩形的位置 <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" conten 阅读全文
posted @ 2022-03-10 18:13 林见夕 阅读(216) 评论(0) 推荐(0)
摘要:3-9 esm和commonjs的区别https://blog.csdn.net/weixin_33816300/article/details/91466271 1. 输出拷贝 vs 输出引用 // a.js let a = 1; let b = { num: 1 } setTimeout(() => { a = 2; b = { n 阅读全文
posted @ 2022-03-09 23:03 林见夕 阅读(276) 评论(0) 推荐(0)
摘要:3-9 less-loader 的less 转成 css 的底层原理Less是CSS预处理语言,扩展了CSS语言,增加了变量、Mixin、函数等特性,Less-loader的作用就是将less代码转译为浏览器可以识别的CSS代码。 // demo.less @base: #f938ab; .box-shadow(@style, @c) when (iscolor(@ 阅读全文
posted @ 2022-03-09 22:31 林见夕 阅读(826) 评论(0) 推荐(0)
摘要:3-9 promise有没有解决异步的问题?https://blog.csdn.net/MFWSCQ/article/details/108703828 Promise 对象是 JavaScript 的异步操作解决方案,为异步操作提供统一的接口。它起到代理作用(proxy),充当异步操作与回调函数之间的中介,使得异步操作具备同步操作的接口。P 阅读全文
posted @ 2022-03-09 22:11 林见夕 阅读(40) 评论(0) 推荐(0)
摘要:3-9 点击一个按钮,浏览器会做些什么事情1.点击按钮后创建一个Event实例 2.然后把事件放到事件队列中,让它等候处理 3.Event循坏线程处理这个事件 4.沿着DOM路径找到触发事件的元素 5.如果这个元素上有处理这个事件的默认行为,并且要在DOM事件阶段周期之前执行,就执行它的默认行为 6.捕获阶段 7.目标阶段 8.冒泡阶段 9 阅读全文
posted @ 2022-03-09 22:04 林见夕 阅读(104) 评论(0) 推荐(0)
摘要:3-9 请说出下面输出什么?function fn(a, c) { console.log(a) var a = 123; console.log(a) console.log(c) function a() {} if(false) { var d = 678; } console.log(d) console.log(b) 阅读全文
posted @ 2022-03-09 21:57 林见夕 阅读(20) 评论(0) 推荐(0)
摘要:3-9 vue在created和mounted这两个生命周期中请求数据有什么区别呢?created阶段的ajax请求与mounted请求的区别:前者页面视图未出现,如果请求信息过多,页面会长时间处于白屏状态 created 里面请求即可,请求响应时间长,应该由你的业务代码去处理这种异常, Vue 的框架层面不知道你的异步请求究竟什么时候结束, 不可能等待你的请求回来再继续渲染。 还 阅读全文
posted @ 2022-03-09 12:14 林见夕 阅读(1715) 评论(0) 推荐(0)
摘要:3-8 怎么处理项目中的异常捕获行为?一、代码执行的错误捕获 1.try…………catch • 能捕获到代码执行的错误 • 捕获不到语法的错误 • 无法处理异步中的错误 • 使用try……catch包裹,影响代码可读性 2.window.onerror • 无论是异步还是非异步错误,onerror都能捕获到运行时错误 • onerrer 阅读全文
posted @ 2022-03-08 22:40 林见夕 阅读(98) 评论(0) 推荐(0)
摘要:3-8 添加原生事件不移除为什么会内存泄漏,还有哪些地方会存在内存泄漏?转发链接: https://juejin.cn/post/6844903892547797006#comment 阅读全文
posted @ 2022-03-08 22:20 林见夕 阅读(95) 评论(0) 推荐(0)
摘要:3-8 CSS预处理器的概念css样式表主要是样式属性的描述,写起来相当的费事,为此,CSS预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为CSS增加了一些编程的特性,将CSS作为目标生成文件,然后开发者就只要使用这种语言进行编码工作。通俗的说,CSS预处理器用一种专门的编程语言,进行Web页面样式设计,然后 阅读全文
posted @ 2022-03-08 21:52 林见夕 阅读(36) 评论(0) 推荐(0)
摘要:3-8 Promise 构造函数是同步还是异步执行,then呢?Promise 构造函数是同步的,而then 方法是异步的 如何证明? const p = new Promise((res, rej) => { console.log('11111') // 1 res('bbbb') }) console.log('899090') // 2 p.then(r 阅读全文
posted @ 2022-03-08 21:45 林见夕 阅读(469) 评论(0) 推荐(0)
摘要:3-7 请描述下css盒模型基本概念盒子模型的概念: 在html中,把每一个元素都当做成一个盒子,拥有盒子的平面外形和空间 盒模型由内容(content)+内边距(padding)+边框(border)+外边距(margin)4部分构成 内容区域:你书写的内容或者子元素能够显示的区域 内边距:撑开内容与边框的距离 边框:元素的边框 外 阅读全文
posted @ 2022-03-07 22:41 林见夕 阅读(130) 评论(0) 推荐(0)
摘要:3-7 说一下Vue的keep-alive是如何实现的,具体缓存的是什么?Vue源码解析,keep-alive是如何实现缓存的?: https://blog.csdn.net/xiaolinlife/article/details/108331068 keep-alive 组件是抽象组件,在对应父子关系时会跳过抽象组件,它只对包裹的子组件做处理,主要是根据LRU策略缓存组 阅读全文
posted @ 2022-03-07 21:48 林见夕 阅读(220) 评论(0) 推荐(0)
摘要:3-7 词法作用域和this的区别?https://learnku.com/articles/50523 静态作用域又叫做词法作用域,采用词法作用域的变量叫词法变量。词法变量有一个在编译时静态确定的作用域。词法变量的作用域可以是一个函数或一段代码,该变量在这段代码区域内可见(visibility);在这段区域以外该变量不可见(或无法访 阅读全文
posted @ 2022-03-07 21:31 林见夕 阅读(95) 评论(0) 推荐(0)
摘要:3-7 响应式布局用到的技术有几种方式?方案一:百分比布局 利用对属性设置百分比来适配不同屏幕,注意这里的百分比是相对于父元素 方案二:使用媒体查询 (CSS3 @media 查询) 方案三.rem 响应式布局 方案四.vw 响应式布局 方案五.flex 弹性盒子布局 阅读全文
posted @ 2022-03-07 16:45 林见夕 阅读(63) 评论(0) 推荐(0)
摘要:3-7 移动端开发注意事项转载:https://zhuanlan.zhihu.com/p/389009882 HTML方向 调用系统功能 使用<a>能快速调用移动设备的电话/短信/邮件三大通讯功能,使用<input>能快速调用移动设备的的图库/文件。 这些功能方便了页面与系统的交互,关键在于调用格式一定要准确,否则会被移动端 阅读全文
posted @ 2022-03-07 16:08 林见夕 阅读(187) 评论(0) 推荐(0)
摘要:3-6 文件分片上传<html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width 阅读全文
posted @ 2022-03-06 21:57 林见夕 阅读(35) 评论(0) 推荐(0)
摘要:3-6 为什么 post 请求需要指定 content-type 而 get 不需要?一个 HTTP 报文通常报告两个部分:头部(head)和主体(body),其中 body 可以为空,常见的 GET 请求就是这种情况。但当 body 不为空时,接收的一端需要知道它是什么类型的数据,采用什么编码,这时候就需要在 Content-Type 来指明 body 的人 MIME 类型。是否需 阅读全文
posted @ 2022-03-06 19:19 林见夕 阅读(422) 评论(0) 推荐(0)
摘要:3-6 实现一个 Promise.allSettled 方法/** * 实现一个 Promise.allSettled 方法 * @param {*} list * @returns [ { status: 'fulfilled'| 'rejected', value(fulfilled) | reason(rejected) } ] */ function 阅读全文
posted @ 2022-03-06 11:38 林见夕 阅读(117) 评论(0) 推荐(0)
摘要:3-6 实现一个 promise.all 方法function jmPromiseAll(list) { const result = []; let count = 0; return new Promise((reslove, reject) => { list.forEach(promise => { promise.then((res) 阅读全文
posted @ 2022-03-06 11:36 林见夕 阅读(33) 评论(0) 推荐(0)
摘要:3-6 实现请求调度器JS 天然支持并行请求,但与此同时会带来一些问题,比如会造成目标服务器压力过大,所以本文引入“请求调度器”来节制并发度。 class Scheduler { constructor(size) { this.size = size; this.stacks = []; this.count = 0; 阅读全文
posted @ 2022-03-06 11:34 林见夕 阅读(56) 评论(0) 推荐(0)
摘要:3-6 如何防止多次点击-重复请求<html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width 阅读全文
posted @ 2022-03-06 11:15 林见夕 阅读(222) 评论(0) 推荐(0)
摘要:3-5 对虚拟DOM的理解?虚拟DOM主要做了什么?对虚拟DOM的理解? 可以看作是一个使用javascript模拟DOM结构的树形结构 虚拟DOM主要做了什么? 传统的DOM操作,对于复杂项目来说,是非常消耗性能的,对DOM的修改开销非常大,vdom:render virtual dom + diff + 必要的dom更新 和 DOM 操作比起来, 阅读全文
posted @ 2022-03-05 21:42 林见夕 阅读(85) 评论(0) 推荐(0)
摘要:3-5 JS代码实现事件代理!function (root, doc) { class Delegator { /* *@param 顶级选择器(代理者) */ constructor (selector) { this.root = document.querySelector(selector);//顶级dom this. 阅读全文
posted @ 2022-03-05 21:34 林见夕 阅读(114) 评论(0) 推荐(0)
摘要:3-5 布局都有什么方式,float和position有什么区别?1. 标准盒子 布局时遵守块级元素单独占一行,行内元素一行可以布置多个元素。 2. 浮动布局 float。盒子脱离标准流,但还在文档或容器中占据位置。如果父盒子为标准盒子,则会一直浮动到最左边界或者最右边界。要浮动,全浮动。 3. 定位 相对定位:相对于自身的位置。 绝对定位:相对于最近一级相对定位 阅读全文
posted @ 2022-03-05 21:25 林见夕 阅读(137) 评论(0) 推荐(0)
摘要:3-4 说一下栈和堆的区别,垃圾回收时栈和堆的区别?一、栈和堆的区别 栈:其操作系统自动分配释放,存放函数的参数值和局部变量的值等。其操作方式类似于数据结构中的栈。简单的理解就是当定义一个变量的时候,计算机会在内存中开辟一块存储空间来存放这个变量的值,这块空间叫做栈,然而栈中一般存放的是基本数据类型,栈的特点就是先进后出(或者后进先出) 堆:一般由程 阅读全文
posted @ 2022-03-04 23:06 林见夕 阅读(468) 评论(0) 推荐(0)
摘要:3-3 如何加快页面渲染速度,都有哪些方式?提高Web页面渲染速度的7个技巧: https://blog.csdn.net/Taobaojishu/article/details/117458077 作为前端你可能要知道如何加快页面渲染速度的几点知识: https://www.jianshu.com/p/424f835c599a 1. con 阅读全文
posted @ 2022-03-03 23:38 林见夕 阅读(627) 评论(0) 推荐(0)
摘要:3-3 setTimeout 模拟 setInterval var timer; var i = 1; timer = function () { i++; console.log(i); if (i 10) { timer = function () { console.log("终止运行"); } } setTimeout(timer, 3000); } 阅读全文
posted @ 2022-03-03 22:36 林见夕 阅读(129) 评论(0) 推荐(0)
摘要:3-3 前端跨域解决方案十种跨域解决方案 https://juejin.cn/post/6844904126246027278#heading-33 阅读全文
posted @ 2022-03-03 22:16 林见夕 阅读(28) 评论(0) 推荐(0)
摘要:3-3 实现一个搜索列表组件题目要求 查询触发条件 搜索框敲击回车 点击“Search”按钮 查询中,显示“Loading” 查询无结果时,显示“查无结果” 滚动列表时,支持懒加载 <!-- page页面 --> <template> <div class="search-container"> <input type="te 阅读全文
posted @ 2022-03-03 20:22 林见夕 阅读(262) 评论(0) 推荐(0)
摘要:3-3 实现左右布局题目要求 左侧:宽度固定150px,高度自动撑开,和右侧同高 右侧:宽度自适应,高度自动撑开,和左侧同高 代码实现 <div class="container"> <div class="left"></div> <div class="right"></div> </div> body{ marg 阅读全文
posted @ 2022-03-03 15:05 林见夕 阅读(77) 评论(0) 推荐(0)
摘要:3-3 版本比较/** * 版本比较 * @param {*} a * @param {*} b */ function compare(a, b) { let arr1 = a.split('.'); let arr2 = b.split('.') const maxLength = Math.max(arr1. 阅读全文
posted @ 2022-03-03 15:03 林见夕 阅读(80) 评论(0) 推荐(0)
摘要:3-3 查找重复数字题目要求 实现一个方法sameNumbers,找出同时存在于两个数组的所有数字 需要处理异常传参,情况不限于: 未传入arr1或arr2 arr1或arr2不是数组 字符串格式的数字需要转为数字,如:'1'需先转化为1再进行查重比较 返回结果需要过滤所有非数字项 代码实现 // 思路:给 obj 新 阅读全文
posted @ 2022-03-03 15:01 林见夕 阅读(179) 评论(0) 推荐(0)
摘要:3-2 webpack 打包时 hash 码是怎么生成的,随机值一样时怎么避免?webpack 打包时 hash 码是怎么生成的 webpack 生态中存在多种计算 hash 的方式: 1、输出的结果全部使用 hash 的情况 每个文件都具有相同的 hash 值,因为 hash 是基于我们使用的所有源文件生成的。 如果重新运行该构建而不更改任何内容,则生成的 hash 将保持不 阅读全文
posted @ 2022-03-02 21:42 林见夕 阅读(947) 评论(0) 推荐(0)
摘要:3-2 移动端适配解决方案,rem 和 em 的区别移动端适配解决方案 viewport(scale=1/dpr) <meta name="viewport" content="width=device-width; initial-scale=1; maximum-scale=1; minimum-scale=1; user-scalable=no 阅读全文
posted @ 2022-03-02 16:08 林见夕 阅读(113) 评论(0) 推荐(0)
摘要:3-2 Set 的用法,用 Set 实现数组去重Set 的用法 let mySet = new Set(); mySet.add(1); // Set [ 1 ] mySet.add(5); // Set [ 1, 5 ] mySet.add(5); // Set [ 1, 5 ] mySet.add("some text"); // Set [ 阅读全文
posted @ 2022-03-02 15:28 林见夕 阅读(88) 评论(0) 推荐(0)
摘要:3-2 常用的 es6 语法有哪些?var 怎么实现 let常用的 es6 语法有哪些? let, const, class, import, export, export default, Promise, async, await, for await, Object.values,Object.kes, array.form array.reduce 阅读全文
posted @ 2022-03-02 15:20 林见夕 阅读(206) 评论(0) 推荐(0)
摘要:3-2 DOM 的事件机制,怎么阻止事件捕获/冒泡什么是事件? 事件可以理解为消息,信号,事件的工作过程中,必然会产生三个概念 1. 事件源 2.事件 3.事件目标,也就是说当 事件目标注册事件后,由事件源开始 ,发送事件信息,给到事件目标的 过程,称为事件的生命周期 DOM 中的事件机制 DOM 定义了为 Event 的事件接口,用来表示事件,我 阅读全文
posted @ 2022-03-02 14:55 林见夕 阅读(606) 评论(0) 推荐(0)
摘要:2-28 谈谈关于对webpack热更新的原理。轻松理解webpack热更新原理:https://blog.csdn.net/chern1992/article/details/106893227/ webpack 热更新,基于浏览器和自定义服务,之间进行 websocket 通信,每次文件更新都会生成新的hash 后缀, 在把更新的文件代码,发 阅读全文
posted @ 2022-03-01 00:29 林见夕 阅读(42) 评论(0) 推荐(0)