面试题
晚风吹心事
来点干货吧,直面问题答案
展开
-
后台管理系统左侧菜单权限怎么控制
答:是由后端进行控制的。登陆时,我们将用户名密码发送给后端,后端会根据相应的用户返回相应的数据我们前端只需要拿到数据进行渲染即可原创 2021-11-05 14:07:41 · 470 阅读 · 0 评论 -
vue项目中遇到的难点
input中type为number时 max-length 失效 解决:input type="tel" vue组件中click事件失效 解决:使用了bette-scroll插件做滚动。加.native也不好使,发现better-scroll的配置中没有设置 click:true,设置过之后click事件成功。 不同商品页,id变化,商品不变 监听$route变化,然后获取id重新去取数据。 修改完数据点击提交后,数据变了 页面数据没有更新 原因:因为v...原创 2021-09-03 17:50:47 · 4404 阅读 · 2 评论 -
一个项目,同时要适配移动端和pc端,你会怎么做
一般情况下:1.首先使用flex布局,把页面元素都转换成弹性盒子,2.然后通过rem去做页面细节适配.3.接着根据用户在浏览器端和手机端的屏幕大小不同使用媒体查询.根据不同的屏幕宽度做不同的样式布局展示...原创 2021-05-28 10:45:03 · 2426 阅读 · 1 评论 -
HTTP与HTTPS的区别小结
1、HTTP是超文本传输协议,信息是明文传输,HTTPS是具有安全性的SSL加密传输协议。2、HTTPS协议需要ca申请证书,一般免费证书少,因而需要一定费用。3、HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样。前者是80,后者是443。4、HTTP连接是无状态的,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,安全性高于HTTP协议。...原创 2021-05-27 14:27:35 · 205 阅读 · 2 评论 -
let const var 三者之间的区别
var声明变量可以重复声明,不受限于块级,可以在声明的上面访问变量,存在变量提升let变量不可以重复声明,受限于块级,有暂存死区,在声明的上面访问变量会报错const声明之后必须赋值否则会报错,定义不可变的量改变了就会报错,受限于块级,在声明的上面访问变量会报错...原创 2021-05-09 21:25:15 · 185 阅读 · 0 评论 -
面向对象
面向对象是一种编程思想(万物皆对象)与之对应的是面向过程面向对象的特点 ,也就是 封装 继承 多态封装: 低耦合高内聚多态: 重载和重写 (重写console.log = function () {})(重载,方法名相同 形参的个数或者数据类型不同 导致方法内部处理逻辑不同)继承: 子类继承父类方法和属性通过研究一些实例的属性和方法, 确定一些问题的分类 根据类的不同 而产生不同类问题的解决方案 ===> 面向对象像 js vue JQ等等本身就是基于面向对象构建出来的...原创 2021-05-09 21:24:39 · 193 阅读 · 0 评论 -
箭头函数与普通函数的区别
普通函数this指向1.谁调用指向谁2.自己调用指向window3.当函数作为构造函数的时候 this指向构造函数实例4.call/apply/bind 强制改变this指向箭头函数原理1.箭头函数的this,始终指向父级上下文2.箭头函数不能通过call() 、 apply() 、bind()方法直接修改它的this指向3.箭头函数内没有arguments,可以用展开运算符...解决4.箭头函数是匿名函数,不能作为构造函数,不能使用new5.箭头函数没有原型属性.原创 2021-05-09 21:23:32 · 189 阅读 · 1 评论 -
什么是跨域以及处理跨域的方案?
跨域的概念:协议、域名、端口都相同才同域,否则都是跨域目前有三种主流解决方案:1. JSONP原理: 借助了script标签 src 请求资源时, 不受同源策略的限制 优点: jsonp没有兼容性问题 缺点: jsonp只能用于get请求2 . nginx代理前后端通常通过 nginx 实现反向代理优点就是轻量级、启动快、高并发。3.CORSCORS 全称叫跨域资源共享,主要是后台工程师设置后端代码来达到前端跨域请求的优点: 功能强大支持各种 H原创 2021-05-09 21:14:21 · 243 阅读 · 0 评论 -
2021前端面试题总结(精简版)
vuev-if和v-show的区别 v-if和v-for的优先级微信小程序微信小程序生命周期 / 页面的生命周期 小程序开发与网页开发的区别 微信小程序优化原创 2021-05-08 14:07:40 · 1283 阅读 · 10 评论 -
es6 有哪些拓展
1. 新增了块级作用域(let,const)2. 提供了定义类的语法糖(class)3. 新增了一种基本数据类型(Symbol)4. 新增了变量的解构赋值5. 函数参数允许设置默认值,引入了 rest 参数,新增了箭头函数6. 数组新增了一些 API,如 isArray / from / of 方法;数组实例新增了entries(),keys() 和 values() 等方法7. 对象和数组新增了扩展运算符8. ES6 新增了模块化(import/export)9. ES6原创 2021-05-09 21:18:13 · 222 阅读 · 0 评论 -
js继承
Es5中的继承有: 原型链继承:(易于实现,创建子类实例时不能向父类构造函数传参) 父类的实例作为子类的原型,子类可以重写父类上方法 父类中私有的或者公有的属性和方法, 最后都会变成子类公有的属性和方法 call继承:(可以实现多继承,可以传参,无法复用,不能继承原型属性/方法) 复制父类的实例属性给子类,只能继承父类私有的属性和方法 组合继承 通过call继承对实例属性的继承, 原型链对原型方法的继承, 调用多次父类构造函数 Es6有class继承 .原创 2021-05-07 21:37:40 · 209 阅读 · 1 评论 -
h5 和css3 的新特性
css3新特性 选择器 背景和边框 文本效果 2D/3D 转换 — 变形(transform)、过渡(transtion)、动画(animation) 1. h5新增特性: 语义化标签:header、footer、section、nav、aside、article 增强型表单:input 的多个 type 新增表单属性:placehoder、required、min 和 max 音频视频:audio、video canva原创 2021-05-07 21:34:40 · 234 阅读 · 0 评论 -
sessionStorage localStorage cookie 的区别
localStorage 生命周期是永久,这意味着除非用户显示在浏览器提供的UI 上清除 localStorage 信息,否则这些信息将永远存在。存放数据大小为一般为5MB,不参与和服务器的通信。 sessionStorage 仅在当前会话下有效,关闭页面或浏览器后被清除。存 放数据大小为一般为 5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。 不同浏览器无法共享 localStorage 或 sessionStorage 中的信息。相同浏览器的不同页面间可以共享相同的 ..原创 2021-05-07 21:31:54 · 168 阅读 · 0 评论 -
for...in 和 for...of 有什么区别
1、推荐在循环对象属性的时候,使用 for...in,在遍历数组的时候的时候使用for...of。2、for...in 循环出的是 key,for...of 循环出的是 value3、for...of 不能循环普通的对象,需要通过和 Object.keys()搭配使用...原创 2021-05-07 21:29:15 · 260 阅读 · 0 评论 -
异步和单线程
异步和单线程是相辅相成的,js是一门单线程脚本语言,所以需要异步来辅助异步和同步的区别: 异步不会阻塞程序的执行, 同步会阻塞程序的执行, 前端使用异步的场景: 定时任务:setTimeout,setInverval 网络请求:ajax请求,动态``加载 事件绑定 ...原创 2021-05-07 21:18:08 · 286 阅读 · 1 评论 -
作用域和作用域链
作用域分为 全局作用域 ,局部作用域,块级作用域js中首先有一个最外层的作用域,全局作用域; js中可以通过函数来创建一个独立作用域称为函数作用域,函数可以嵌套,所以作用域也可以嵌套; es6中新增了块级作用域(let const)1.作用域链作用域链:内部函数访问外部函数的变量,采取的是链式查找的方式来决定取哪个值,这种结构我们称作作用域链,采取就近原则...原创 2021-05-07 21:10:48 · 163 阅读 · 0 评论 -
闭包
闭包:当一个函数用到了另外一个函数的变量,那么这个变量和这个函数的环境就是闭包环境, 主要体现是通过函数嵌套或者通过作用域链的方式来实现的。优点:不会造成变量污染缺点:容易造成内存泄漏 (不再用到的内存,没有及时释放,就叫做内存泄漏)...原创 2021-05-07 21:06:33 · 207 阅读 · 0 评论 -
原型与原型链(javascript)
javascript原型与原型链 每个函数都有一个prototype属性,被称为显示原型 每个实例对象都会有_ _proto_ _属性,其被称为隐式原型 每一个实例对象的隐式原型_ _proto_ _属性指向自身构造函数的显式原型prototype 每个prototype原型都有一个constructor属性,指向它关联的构造函数。 原型链获取对象属性时,如果对象本身没有这个属性,那就会去他的原型__proto__上去找,如果还查不到,就去找原型的原型,一直找原创 2021-05-07 21:04:08 · 220 阅读 · 1 评论 -
什么是重绘和重排
重绘不一定需要重排(比如颜色的改变),重排必然导致重绘(比如改变网页位置)重排(Reflow):当渲染树的一部分必须更新并且节点的尺寸发生了变化,浏览器会使渲染树中受到影响的部分失效,并重新构造渲染树。重绘(Repaint):是在一个元素的外观被改变所触发的浏览器行为,浏览器会根据元素的新属性重新绘制,使元素呈现新的外观。比如改变某个元素的背景色、文字颜色、边框颜色等等如何引发重排1.添加、删除可见的dom2.元素的位置改变3.元素的尺寸改变(外边距、内边距、边框厚度、宽高、等.原创 2021-05-07 11:51:26 · 642 阅读 · 0 评论 -
vue自定义指令
全局: vue.directive:{"",{}}局部:directives:{指令名:{钩子函数}}bind(){} 只调用一次,指令第一次绑定到元素时调用inserted(){} 被绑定元素插入父节点时调用update(){} 被绑定元素所在的模板更新时调用,而不论绑定值是否变化componentUpdated(){} 被绑定元素所在模板完成一次更新周期时调用unbind(){}只调用一次, 指令与元素解绑时调用...原创 2021-05-07 11:46:24 · 153 阅读 · 0 评论 -
vue中的filter
过滤器是实现变量的格式化输出 。过滤器分为局部过滤器还有全局过滤器全局过滤器 是在多个实例中可以使用的过滤器 语法: Vue.filter(“名”,function(value){ // value是调用过滤器的属性的值 }) 调用: 在v-bind中或者{{ 属性|过滤器名}}局部过滤器 只是在当前的组件或者实例中使用 filters:{ 名:function(val){}}注意:过滤器可以串联 但是后面的肯定是以前面的为基础 变量|过滤器1|过滤器2...原创 2021-05-06 21:42:11 · 370 阅读 · 0 评论 -
Vue 虚拟Dom diff算法
虚拟dom是利用js描述元素与元素的关系,好处:是可以快速的渲染和高效的更新元素,提高浏览器的性能diff算法: 基础虚拟DOM完成节点更新的方法 用js对象来表示真是的DOM树结构,创建一个虚拟DOM对象 当数据发生改变的时候,创建一个新的js的虚拟DOM对象 比较新旧对象的差异,记录下来,最终更新到真实的DOM树结构上。 总结:总的来说就是减少DOM,重绘和回流。...原创 2021-05-06 21:38:31 · 231 阅读 · 0 评论 -
vue常用修饰符
.stop 阻止事件冒泡 .capture 设置事件捕获 .self 只有当事件作用在元素本身才会触发 .prevent 阻止默认事件,比如超链接跳转 .once 事件只能触发一次.native 触发js原生的事件 .number 把文本框的内容转换为数字 .trim 去除文本框左右空格.keyup.enter .keyup.space...原创 2021-05-06 21:25:53 · 167 阅读 · 0 评论 -
vue中methods,computed, watch 的区别
computed 具有缓存性,依赖于属性值,只有属性发生改变的时候才会重新调用methods 是没有缓存的,只要调用,就会执行,一般结合事件来使用watch 没有缓存性 监听data中的属性 属性值只要发生变化就会执行 可以利用他的特性做一些异步的操作...原创 2021-05-06 21:20:58 · 205 阅读 · 0 评论 -
keep-alive 作用以及应用场景
keep-alive是Vue提供给我们一个内置组件,作用:保存我们路由切换时组件的状态 , 比如列表页面进入详情,我们想保存列表滚动的位置,我们就可以 使用keep-alive保存列表页面的滚动位置。组件使用keep-alive以后会新增两个生命周期 actived() 组件激活时触发 deactived() 组件销毁时触发有两个参数 include - 包裹的组件名会被缓存 exclude 包裹的组件名都不会被缓存...原创 2021-05-06 21:17:00 · 598 阅读 · 0 评论 -
vue中prop 验证 和默认值
props:会接收不同的数据类型,常用的数据类型的设置默认值的写法例如:Number, String, Boolean, Array, Function, Objectprop 数据单项传递,父不影响子,子不影响父不能再组件中直接修改prop传递的值,Vue会发出警告...原创 2021-05-06 21:13:06 · 544 阅读 · 0 评论