前端面试题
文章平均质量分 60
一善流年
菜鸟小白
展开
-
数组去重的五种方法
数组去重的方法一、利用ES6 Set去重(ES6中最常用)var arr = [1,1,8,8,12,12,15,15,16,16];function unique (arr) { return Array.from(new Set(arr))}console.log(unique(arr)) //[1,8,12,15,16]不考虑兼容性,这种去重的方法代码最少。这种方法还无法去掉“{}”空对象,后面的高阶方法会添加去掉重复“{}”的方法。二、利用for嵌套for,然后s原创 2021-10-28 21:10:16 · 7217 阅读 · 0 评论 -
vue中的diff算法
什么是Diff算法?diff算法就是用于比较新旧两vue中的虚拟dom目前虚拟dom的类库有多种,常见的有snabbdom和virtual-dom, vue以前用的是virtual-dom,从2.x版本后都是使用的snabbdom。(snabbdom源码下载) 今天,我们就通过snabbdom源码来解析vue的虚拟domdiff 比较规则1、diff 比较两个虚拟dom只会在同层级之间进行比较,不会跨层级进行比较。而用来判断是否是同层级的标准就是是否在同一层 是否有相同的父级 下原创 2021-10-28 21:02:35 · 607 阅读 · 0 评论 -
vue中Slot插槽的使用
1.solt插槽插槽分为:具名插槽 ,匿名插槽,作用域插槽插槽指允许将自定义的组件像普通标签一样插入内容import Vue from 'vue'// 定义组件componentOne const compoentOne = { template: ` <div :style="style1"> <slot></slot> // 定义插槽 </div> `, da原创 2021-10-28 20:51:42 · 188 阅读 · 0 评论 -
TypeScript的类
类的概念虽然 JavaScript 中有类的概念,但是可能大多数 JavaScript 程序员并不是非常熟悉类,这里对类相关的概念做一个简单的介绍。类(Class):定义了一件事物的抽象特点,包含它的属性和方法 对象(Object):类的实例,通过new生成 面向对象(OOP)的三大特性:封装、继承、多态 封装(Encapsulation):将对数据的操作细节隐藏起来,只暴露对外的接口。外界调用端不需要(也不可能)知道细节,就能通过对外提供的接口来访问该对象,同时也保证了外界无法任意更改对..原创 2021-10-11 20:08:19 · 147 阅读 · 0 评论 -
JS 的继承
前言继承在js中占有非常重要的地位,那么在js中有很多中继承的方式,不过每一种继承方式都有优缺点。下面就列举几种继承的方式。实现继承首先需要一个父类,在js中实际上是没有类的概念,在es6中class虽然很像类,但实际上只是es5上语法糖而已一.ES5继承1.原型链继承父类的实例作为子类的原型特点:优点: 子类的实例也是父类的实例 可以方便的继承父类型的原型中的方法,但是属性的继承无意义 缺点: 只执行一次,无法给属性传值 无法实现多继承 2.构造函数继承复原创 2021-09-23 19:29:01 · 58 阅读 · 0 评论 -
HTML&CSS的面试题
1.盒模型1.什么是盒子模型?在我们HTML页面中,每一个元素都可以被看作一个盒子,而这个盒子由:内容区(content)、填充区(padding)、边框区(border)、外边界区(margin)四部分组成。2.盒子模型有哪两种标准模式下: 一个块的总宽度(页面中占的宽度)= width + margin(左右) + padding(左右) + border(左右)怪异模式下: 一个块的总宽度= width + margin(左右)(即width已经包含了padding和borde原创 2021-09-08 19:38:50 · 117 阅读 · 0 评论