面试题
yyqx滴darling
这个作者很懒,什么都没留下…
展开
-
Get和post的区别
Get和post的区别1、Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post提交的数据在HTTP包的请求包体中,对用户来说都是不可见的,相对安全。2、Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不受限制。3、Get执行效率却比Post方法好。Get是form提交的默认方法。关于Ge和post的选择:1.私密性的信息请求使用post(如注册、登陆)。2.查询信息使用get...原创 2021-06-22 10:21:26 · 125 阅读 · 0 评论 -
JS事件委托
1. 什么是事件委托事件委托:事件委托也称为事件代理,把事情委托给别人,代为处理。理解:说白了就是,不给子元素注册事件,给父元素注册事件,把处理代码在父元素的事件中执行。2. 事件委托的原理 不是每个子节点单独设置事件监听器,而是事件监听器设置在其父节点上,然后利用事件冒泡原理影响设置每个子节点。 例如:给 ul 注册点击事件,然后利用事件对象的 target 来找到当前点击的 li,因为点击 li,事件会冒泡到 ul 上, ul 有注册事件,就会触发事件监听器。3. 事件委托的作用我们只原创 2021-06-22 10:18:20 · 111 阅读 · 1 评论 -
虚拟DOM和diff算法
虚拟dom是根据模板生成一个js对象(使用createElement方法),再根据这个js对象生成一个真实的dom,对复杂的文档dom结构,提供一种方便的工具,进行最小化的dom操作虚拟dom就是一个js对象,vue和react会把文档结构虚拟成一个js对象,然后对节点操作的时候,就是对虚拟dom的操作,当某一个节点发生改变时,或者某一个节点绑定的数据发生改变的时候,vue会监测到这个变化,然后拿旧的虚拟dom和新的虚拟dom进行对比,通过diff算法快速定位到改变的节点,把节点的修改转化为dom操作,让原创 2021-06-21 08:36:10 · 121 阅读 · 0 评论 -
对axios封装(url统一管理、axios请求拦截、响应拦截、函数封装)
首先要安装axios,一般我会在项目的src目录中,新建一个network文件夹,作为我们的网络请求模块,然后在里面新建一个http.js和一个api.js文件和一个request.js。http.js文件用来封装我们的axios,api.js用来统一管理我们的接口url。在request.js中添加请求拦截和响应拦截。在请求拦截中,会给请求头添加token字段,还有loading动画的开启。在响应拦截中,可以做一些loading动画的关闭,还有可以根据后端返回的状态码,做一些检验token是否有效或者过原创 2021-06-17 09:56:49 · 257 阅读 · 0 评论 -
vue双向数据绑定原理
vue.js是采用数据劫持结合发布者-订阅者模式的方法,通过 Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调来渲染视图。具体步骤:第一步: 需要observer(观察者)对数据对象进行递归遍历,包括子属性对象的属性,都加上 setter和getter,这样的话,给这个对象的某个值赋值,就会触发setter,那么就能监听到了数据变化第二步: compile(模板解析器)解析模板指令,将模板中的变量替换成数据,然后原创 2021-06-17 09:50:06 · 73 阅读 · 0 评论 -
深拷贝和浅拷贝
一.深拷贝将一个对象从内存中完整的拷贝一份出来,从堆内存中开辟一个新的区域存放新对象,且修改新对象不会影响原对象二.浅拷贝创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值,假如属性是引用类型,则拷贝的是内存地址。因此如果其中一个对象改变了这个地址,就会影响到另一个对象。深拷贝一般来说,在js中我们用JSON.parse(JSON.stringify(obj))来完成深拷贝,但是该方法不能解决属性为函数,undefined,循环引用的的原创 2021-05-23 19:23:49 · 51 阅读 · 0 评论 -
原型和原型链
prototype每个函数都有一个prototype属性,被称为显示原型_ proto _每个实例对象都会有_ _proto_ _属性,其被称为隐式原型每一个实例对象的隐式原型_ _proto_ _属性指向自身构造函数的显式原型prototype3.constructor每个prototype原型都有一个constructor属性,指向它关联的构造函数。4.原型链获取对象属性时,如果对象本身没有这个属性,那就会去他的原型_ proto 上去找,如果还查不到,就去找原型的原型,一直找到.原创 2021-06-10 09:35:12 · 50 阅读 · 0 评论 -
git创建新分支
1.如何连接数据到仓库:在进行创建仓库的时候,依次通过git执行以下步骤:git initgit add .git commit -m “first commit”git remote add origin https://gitee.com/daring00/ccc.git(仓库的地址)git push -u origin master2.git如何创建新分支切换到基础分支,如主干git checkout master2)创建并切换到新分支git checkout -b ly(分原创 2021-06-09 10:06:57 · 134 阅读 · 0 评论 -
重点:webpack打包优化
webpack打包优化Ⅰ、webpack打包作用原创 2021-06-06 19:54:48 · 498 阅读 · 0 评论 -
transition 属性
transition 属性是一个简写属性,用于设置四个过渡属性。CSS3的“过渡”(transition)属性通过设定某种元素在某段时间内的变化实现一些简单的动画效果,让某些效果变得更加具有流线性与平滑性。CSS3的“动画”(animation)属性能够实现更复杂的样式变化以及一些交互效果,而不需要使用任何Flash或JavaScript脚本代码。属性:transition-property 规定设置过渡效果的 CSS 属性的名称。transition-duration 规定完成过渡效果需要原创 2021-06-01 21:21:52 · 3204 阅读 · 1 评论 -
vant-ui按需引入
1.安装vant-ui插件#先安装vant-uinpm install vant-ui --save # 再安装按需引入的插件npm i babel-plugin-import -D2.在babel.config.js中添加配置plugins: [ ['import', { libraryName: 'vant', libraryDirectory: 'es', style: true }, 'vant'] ]3.在src下创建一原创 2021-06-03 21:08:46 · 55 阅读 · 0 评论