面试
文章平均质量分 77
以实战为目的,面试真题
归途风景111
都入冬了,你还执着于盛夏的蝉鸣和深秋的落叶么?
展开
-
css的属性选择器
CSS 属性选择器,可以通过已经存在的属性名或属性值匹配元素。属性选择器是在 CSS2 中引入的并且在 CSS3 中得到了很好拓展。本文将会比较全面的介绍属性选择器,尽可能的去挖掘这个选择器在不同场景下的不同用法。原创 2023-04-20 17:41:58 · 1250 阅读 · 1 评论 -
Cookie 和 Session的区别
Cookie 和 Session的区别原创 2023-03-23 22:01:03 · 2067 阅读 · 1 评论 -
ajax的参数
ajax的参数记不太清楚,所以就在这记一下吧!1.url:要求为String类型的参数,(默认为当前页地址)发送请求的地址。2.type:要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。3.timeout:要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局设置。4.async:要求为Boolean类型的参数,默认设置为true,所有请原创 2022-03-17 17:22:54 · 6945 阅读 · 0 评论 -
面向对象与面向过程的区别
面向对象与面向过程可以以下几个方面来说:一、出发点不同面向对象方法是用符合常规思维的方式来处理客观世界的问题,强调把问题领域的要领直接映射到对象及对象之间的接口上。而面向过程方法强调的则是过程的抽象化于模块化,它是以过程为中心构造或处理客观世界的问题。二、层次逻辑关系不同面向对象方法则是用计算机逻辑来模拟客观世界中的物理存在,以对象的集合类作为处理问题的基本单元,尽可能地使计算机世界向客观世界靠拢,以使问题的处理更清晰直接,面向对象的方法是用类的层次结构来体现类之间的继承和发展。而面向过程方法处理问原创 2022-03-17 17:10:12 · 5108 阅读 · 0 评论 -
vue和原生js的优点分析
我的这篇文章,帮助大家分析vue相对原生js的优缺点,vue的一些好处如下:一、控件跟数据自动绑定可以直接使用data里面的数据值来提交表单,而不需要再使用$("#myid").val()那一套方法来获取控件的值,对控件赋值也方便很多,只需要改变data的值,控件就会自动改变值。将复杂的界面操作,转化为对数据进行操作。比如下面的一段代码就可以很简单的实现了select控件的里面的列表的动态管理:html代码:<el-select v-model="mType" style="flex: 1;原创 2022-03-09 19:37:33 · 3913 阅读 · 1 评论 -
http和https的区别,http的缓存机制
HTTP:超文本传输协议(Http,HyperText TransferProtocol)是互联网上应用最为广泛的一种网络协议。设计Http最初的目的是为了提供一种发布和接收HTML页面的方法。它可以使浏览器更加高效。Http协议是以明文方式发送信息的,如果黑客截取了Web浏览器和服务器之间的传输报文,就可以直接获得其中的信息。HTTPS:是以安全为目标的Http通道,是Http的安全版。Https的安全基础是SSL。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。原创 2022-03-04 21:21:54 · 552 阅读 · 0 评论 -
vue中Computed、Methods、Watch区别
一、计算属性Computed模板内使用js表达式是很方便的,设计的目的只是为了简单运算。在模板中放入太多的逻辑会让模板过重且难以维护。所以,对于任何复杂逻辑,你都应当使用计算属性。<!-- 复杂运算 --><div>{{message.split('').reverse().join('')}}</div><!-- 计算属性代替复杂运算 --><div>{{reverseMessage}}</div>computed: {原创 2022-01-31 12:25:30 · 240 阅读 · 1 评论 -
纯css的大于号样式
今天遇到了一个问题,说是让用纯css来写一个大于号的样式原创 2022-03-04 20:45:55 · 810 阅读 · 0 评论 -
数组去重的方法
数组去重的三种最简单实用的方法原创 2022-03-04 20:38:42 · 604 阅读 · 0 评论 -
微信小程序的双向数据绑定,父子传值
单向绑定语法1. 普通的属性的绑定是单向的。<input value="{{value}}" />如果使用 this.setData({ value: ‘leaf’ }) 来更新 value ,this.data.value 和输入框的中显示的值都会被更新为leaf;但如果用户修改了输入框里的值,却不会改变 this.data.value。双向绑定语法对应属性前加入model:前缀:<input model:value="{{value}}" />用户输入的原创 2022-03-01 16:47:29 · 766 阅读 · 0 评论 -
ElementUI 修改默认样式的几种办法
ElementUI 是一套ui组件库,目前最新版本 react 和 vue 等主流框架都有支持。该库默认主题色是天蓝色,若用于项目开发,难免遇到要需求修改其默认样式的情况,本文就基于vue 框架介绍几种修改 ElementUI 默认样式的办法。面试官会问:怎样修改ElementUI的默认样式 ?如何修改ElementUI样式?回答:一共有三种方法:1、内嵌法修改样式、通过:style修改,用于局部组件块2、:class引用修改样式,通过:class修改,用于局部组件块3、import导入修改样原创 2022-02-24 15:03:18 · 3807 阅读 · 0 评论 -
前端面试题
这是一份比较全的前端面试题,里面包含了vue,HTML,css,js,状态码还有vue3的新增知识原创 2022-02-23 11:34:29 · 2596 阅读 · 4 评论 -
vue修改数据页面不重新渲染
如果为对象添加少量的新属性,可以直接采用Vue.set()如果需要为新对象添加大量的新属性,则通过Object.assign()创建新对象如果你需要进行强制刷新时,可采取$forceUpdate() (不建议)vue3是用过proxy实现数据响应式的,直接动态添加新属性仍可以实现数据响应式原创 2022-02-17 16:33:35 · 257 阅读 · 0 评论 -
vue中的$nextTick()
在下次DOM更新循环结束后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的DOM。使用场景是:可以在created钩子函数中拿到dom节点无法获取的原因:vue的reader渲染函数是异步的,例如将变量修改,数据改变引起虚拟dom对比,如果立刻获取真实dom,无法获取,因为数据改变引起虚拟dom对比,立即获取真实dom是undefined,可以使用定时器、$nextTick 使用场景:假如定义一个变量开关,修改开关变量让按钮和输入框来回切换,切换到input直接获取dom为其绑定自动聚焦,原创 2022-02-17 16:27:21 · 608 阅读 · 0 评论 -
vue之prop
type 可以是下列原生构造函数中的一个:- String Number Boolean Array Object Date Function Symbolprop 数据单项传递- 父影响子,子不影响父- 不能在组件中直接修改 prop 传递过来的值,Vue 会给出警告- prop 验证时,会在实例创建之前进行验证,所以实例的属性 (如 data、computed 等) 在 default 或 validator 函数中是不可用的- 非 prop 特性,组件可以接受任意的特性,而这些特性会被添原创 2022-02-17 16:18:41 · 121 阅读 · 0 评论 -
vue中的slot(插槽)
插槽就是父组件往子组件中插入一些内容。有三种方式,默认插槽,具名插槽,作用域插槽1. 默认插槽就是把父组件中的数据,显示在子组件中,子组件通过一个slot插槽标签显示父组件中的数据2. 具名插槽是在父组件中通过slot属性,给插槽命名,在子组件中通过slot标签,根据定义好的名字填充到对应的位置。3. 作用域插槽是带数据的插槽,子组件提供给父组件的参数,父组件根据子组件传过来的插槽数据来进行不同的展现和填充内容。在标签中通过slot-scope来接受数据。原创 2022-02-16 14:36:19 · 2250 阅读 · 0 评论 -
v-for中为什么要用key
一、v-for中为什么要用keyvue中列表循环需加:key=“唯一标识” 唯一标识尽量是item里面id等,因为vue组件高度复用增加Key可以标识组件的唯一性,为了更好地区别各个组件 key的作用主要是为了高效的更新虚拟DOM。key主要用来做dom diff算法用的,diff算法是同级比较,比较当前标签上的key还有它当前的标签名,如果key和标签名都一样时只是做了一个移动的操作,不会重新创建元素和删除元素。没有key的时候默认使用的是“就地复用”策略。如果数据项的顺序被改变,Vue原创 2022-02-10 16:31:35 · 8905 阅读 · 3 评论 -
vue2与vue3的区别
2. 默认使用懒加载在2.x版本里。不管数据多大,都会在一开始就为其创建观察者,在数据很大时,就会造成性能的问题。在3.x中,只会对渲染出来的数据创建观察者,而且3.x的观察者更高效。3. 3.0新加入了TypeScript以及PWA支持4. 重构Virtual DOM* 模板编译时的优化,将一些静态节点编译成常量* Slot优化,将slot编译为lazy函数,将slot的渲染的决定权交给子组织原创 2022-02-09 16:08:09 · 886 阅读 · 0 评论 -
回流&重绘
前言:重绘与回流是由于浏览器的再次渲染所引起的一个话题,所以我们需要先了解浏览器的渲染过程;一个前端页面无非就是有html、css、JavaScript组成的。回流必将引起重绘,重绘不一定会引起回流。原创 2022-02-08 15:22:48 · 109 阅读 · 0 评论 -
vue3新语法
双向数据绑定用原理发生了改变,使proxy替换Object.defineProerty,使用Proxy的优势:可直接监听数组类型的数据变化监听的目标为对象本身,不需要像Object.defineProperty一样遍历每个属性,有一定的性能提升可直接实现对象属性的新增/删除默认使用懒加载在2.x版本里。不管数据多大,都会在一开始就为其创建观察者,在数据很大时,就会造成性能的问题。在3.x中,只会对渲染出来的数据创建观察者,而且3.x的观察者更高效。3.0新加入了TypeScript以及PWA支持原创 2022-02-07 08:44:12 · 454 阅读 · 0 评论 -
vue2与vue3双向数据绑定的区别
v2是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter在数据变动时发布消息给订阅者,触发相应的监听回调来渲染视图,实现数据和视图同步。v3 使用发布者订阅模式,结合ES6的prosy的set和get方法来进行数据劫持,进一步结合watchr的update方法原创 2022-02-07 08:27:04 · 1527 阅读 · 0 评论 -
vue之keep-alive
keep-alive 是 Vue 的内置组件,当它包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。keep-alive 是一个抽象组件:它自身不会渲染成一个 DOM 元素,也不会出现在父组件链中。在组件切换过程中 把切换出去的组件保留在内存中,防止重复渲染DOM,减少加载时间及性能消耗,提高用户体验性原创 2022-02-07 08:18:44 · 413 阅读 · 0 评论 -
vue路由,路由传参(parmas,query)
一、Vue路由基础用法:1 .安装 npm install vue-router --save2 .main.js中//Vue路由:引入import VueRouter from 'vue-router'Vue.use(VueRouter)//Vue路由:引入并创建组件import BYHome from './components/BYHome.vue'import BYNews from './components/BYNews.vue'import HelloWorld from原创 2022-01-31 16:48:11 · 124 阅读 · 0 评论 -
vue之filter过滤器
vue中自定义过滤器• 过滤器是对即将显示的数据做进一步的筛选处理,然后显示,过滤器并没有改变原来的数据,只是在原数据的基础上产生新的数据• 过滤器分为全局过滤器和局部过滤器全局过滤器全局过滤器是通过Vue.filter()来定义的,定义好后,它在所有组件中都可以使用。第一个是过滤器名称 第一个参数是需要过滤的值 第二个参数是给过滤器传递的值局部过滤器局部过滤器,定义在组件内部 filters 属性上.它只能在此组件内部使用.过滤器的使用方式是,在双花括号或v-bind中通过一个管道符 ‘|’原创 2022-01-31 15:06:03 · 1000 阅读 · 0 评论 -
vue中如何自定义指令
vue中除了核心功能内置的指令外,也允许注册自定义指令。自定义指令又分为全局的自定义指令和局部自定义指令。全局自定义指令是通过Vue.directive('第一个参数是指令的名称',{第二个参数是一个对象,这个对象上有钩子函数})原创 2022-01-31 14:49:32 · 24375 阅读 · 11 评论 -
vue中的修饰符
修饰符:在Vue中,事件修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间去处理这些烦恼的事情,而能有更多的精力专注于程序的逻辑处理。在Vue中事件修饰符常用的主要有:• .stop :阻止事件冒泡• .self :当事件作用在元素本身,触发回调• .once :只执行一次 • .prevent: 阻止默认事件• .capture :事件捕获• ·passive:告诉浏览器你不想阻止事件的默认行为• ·trim:自动过滤用户输入的首尾空格语法:@事件名.修饰符=“方法名”原创 2022-01-31 12:40:49 · 155 阅读 · 0 评论 -
mvvm和mvc
mvvm概念:MVVM是 Model-View-ViewModel 的缩写,分别对应着:数据,视图,视图模型。Model是我们应用中的数据模型,View是我们的UI视图层,通过ViewModle,可以把我们Modle中的数据映射到View视图上,同时,在View层修改了一些数据,也会反应更新我们的Modle。简单理解就是双向数据绑定,即当数据发生变化的时候,视图也就发生变化,当视图发生变化的时候,数据也会跟着同步变化。以vue为例:view 对应 template,vm 对应 new Vue({…}原创 2022-01-31 12:33:20 · 109 阅读 · 0 评论 -
Vue中的虚拟dom
想要理解虚拟dom首先要知道什么是虚拟dom?虚拟dom可以简单的用一句话概括,就是用普通的js对象来描述DOM结构,因为不是真实DOM,所以称之为虚拟DOM。为什么要用虚拟DOM来描述真实的DOM呢?创建真实DOM成本比较高,如果用 js对象来描述一个dom节点,成本比较低,另外我们在频繁操作dom是一种比较大的开销。所以建议用虚拟dom来描述真实dom。原创 2022-01-28 23:03:22 · 1217 阅读 · 0 评论 -
Vue组件通信(父传子、子传父、兄弟传值)
1.父传子:在父组件的子组件标签上绑定一个属性,挂载要传输的变量。在子组件中通过props来接受数据,props可以是数组也可以是对象,接受的数据可以直接使用 Bus.$off(“事件名”)2.子传父:vue2.0只允许单向数据传递,我们通过出发事件来改变组件的数据在父组件的子组件标签上通过绑定自定义事件,接受子组件传递过来的事件。子组件通过$emit触发父组件上的自定义事件,发送参数(第一个是要改变的属性值,第二个是要发送的参数)原创 2022-01-28 22:34:14 · 8837 阅读 · 0 评论 -
Vue监听和深度监听watch
watch在vue的文档中是这样解释的。一个对象,键是需要观察的表达式,值是对应回调函数。值也可以是方法名,或者包含选项的对象。Vue 实例将会在实例化时调用 $watch(),遍历 watch 对象的每一个属性。值是包括选项的对象:选项包括有三个。第一个handler:其值是一个回调函数。即监听到变化时应该执行的函数。第二个是deep:其值是true或false;确认是否深入监听。(一般监听时是不能监听到对象属性值的变化的,数组的值变化可以听到。)原创 2022-01-28 21:38:52 · 407 阅读 · 0 评论 -
Vue中的diff算法
Diff算法diff的过程就是调用名为patch的函数,比较新旧节点,一边比较一边给真实的DOM打补丁Diff算法的步骤:用 JavaScript 对象结构表示 DOM 树的结构;然后用这个树构建一个真正的 DOM 树,插到文档当中当状态变更的时候,重新构造一棵新的对象树。然后用新的树和旧的树进行比较(diff),记录两棵树差异把第二棵树所记录的差异应用到第一棵树所构建的真正的DOM树上(patch),视图就更新了原创 2022-01-28 21:29:21 · 317 阅读 · 0 评论 -
Vue的双向数据绑定
v2是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter在数据变动时发布消息给订阅者,触发相应的监听回调来渲染视图,实现数据和视图同步。v3 使用发布者订阅模式,结合ES6的prosy的set和get方法来进行数据劫持,进一步结合watchr的update方法原创 2022-01-28 20:06:46 · 12858 阅读 · 3 评论 -
v-if与v-show的区别
一、相同点都可以动态控制着dom元素的显示隐藏二、区别v-if: 控制DOM元素的显示隐藏是将DOM元素整个添加或删除;v-show: 控制DOM 的显示隐藏是为DOM元素添加css的样式display,设置none或者是block,DOM元素是还存在的三、性能对比v-if有更高的切换消耗;v-show有更高的初始渲染消耗四、使用场景v-if适合运营条件不大可能改变的场景下;v-show适合频繁切换;例如:v-if:在请求后台接口,用接口返回数据渲染生成多个元素的时候,由于网速太慢原创 2022-01-27 21:07:10 · 223 阅读 · 0 评论 -
vue常用的指令
一、vue常用指令:v-model 多用于表单元素实现双向数据绑定v-for 格式: v-for="(item,index) in/of 数组json" 循环数组或jsonv-show 显示内容 ,通过display=block/none来控制元素隐藏出现v-hide 隐藏内容 同上v-if 显示与隐藏 (dom元素的删除添加 同angular中的ng-if 默认值为false)v-else-if 必须和v-if连用v-else 必须和v-if连用 不能单独使用 否则报错 模板编译错误v-原创 2022-01-27 21:01:23 · 511 阅读 · 0 评论 -
组件的data必须是一个函数
如果不是一个函数,每个组件实例的data都是同一个引用数据,当该组件作为公共组件共享使用,一个地方的data更改,所有的data一起改变,如果data是一个函数,每个实例的data都在闭包中,就不会各自影响了。data可以是对象也可以是函数,不会产生数据污染情况,函数有一个独立的作用域,函数内部的变量只能内部的函数去访问从而形成一个闭包闭包就是能够读取其他函数内部变量的函数优点:1.能够读取函数内部的变量 2.让这些变量一直存在于内存中,不会在调用结束后,被垃圾回收机制回收缺点:闭包会使函数中的变量原创 2022-01-27 20:57:22 · 358 阅读 · 0 评论 -
js继承方法
js继承的6种方式1、原型链继承:2、借用构造函数继承3、组合继承(组合原型链继承和借用构造函数继承)4、原型式继承 5、寄生式继承 6、寄生组合式继承(常用)原创 2022-01-27 18:29:17 · 288 阅读 · 0 评论 -
for···in和for···of的区别
本文来告诉大家for···in和for···of的区别:1、从遍历数组角度来说,for···in遍历出来的是key(即下标),for···of遍历出来的是value(即数组的值)2、从遍历字符串的角度来说,同数组一样。3、从遍历对象的角度来说,for···in会遍历出来的为对象的key,但for···of会直接报错4、如果要使用for…of遍历普通对象,需要配合Object.keys()一起使用原创 2022-01-25 22:39:08 · 230 阅读 · 2 评论 -
null和undefined的区别
文章目录先来说一下null和undefined的定义定义:1、null:主动释放一个变量引用的对象,表示一个变量不再指向任何对象地址2、undefined:是所有没有赋值变量的默认值,自动赋值题目:判断题,null和undefined 是否相等?2、那到底什么时候是null,什么时候是undefined呢?3、两者相似性4、转为数值时,值不一样,undefined转为数值NaN,null转为数值0。先来说一下null和undefined的定义定义:1、null:主动释放一个变量引用的对象,表示一个变量原创 2022-01-25 21:19:59 · 438 阅读 · 1 评论 -
JS字符串常用方法
总结一下js字符串常用的方法1、indexOf(): 返回某个指定的子字符串在字符串中第一次出现的位置注意:indexOf()方法对大小写敏感,如果子字符串没有找到,返回-1。第二个参数表示从哪个下标开始查找,没有写则默认从下标0开始查找var str="Hello World";var str1=str.indexOf("o");var str2=str.indexOf("world");var str3=str.indexOf("o",str1+1);console.log(str1);原创 2022-01-23 22:01:13 · 644 阅读 · 0 评论 -
js数组常用的方法
js数组常用的方法1. join()2. push()和pop()3. shift() 和 unshift()4. sort()5. reverse()6. concat ()7. slice()8.splice()9.indexOf()和lastIndexOf()10. forEach()11. map()12.filter()13. every()14. some()15、find()16、findIndex原创 2022-01-21 21:45:06 · 9231 阅读 · 2 评论