前端面试题
文章平均质量分 55
前端面试题
zhangwenok
这个作者很懒,什么都没留下…
展开
-
react-router 里的 Link 标签和 a 标签有什么区别?
Link> 是 react-router 里实现路由跳转的链接,一般配合 使用,react-router 会接管Link 的默认链接跳转行为,区别于传统的页面跳转, 的“跳转”行为只会触发相匹配的 对应的页面内容更新,而不会刷新整个页面。而 标签就是普通的超链接了,用于从当前页面跳转到 href 指向的另一个页面(非锚点情况)。从最终渲染的 DOM 来看,这两者都是链接,都是 标签。跳转链接的路径,如 /users/123。原创 2022-10-08 14:24:26 · 2311 阅读 · 0 评论 -
JS深拷贝和浅拷贝
JS深拷贝和浅拷贝的核心区别就在于不同的数据类型在内存中存储的位置不同。JS的数据类型分为基本数据类型(值类型)字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。引用数据类型(对象类型)对象(Object)、数组(Array)、函数(Function)。基本类型数据保存在栈内存中;引用类型数据保存在堆内存中,引用数据类型的变量是存放在栈中的,指向的是堆内存中实际对象的引用。...原创 2022-07-22 16:20:49 · 1106 阅读 · 0 评论 -
面试官:为什么Vue中的v-if和v-for不建议一起用?
指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 值的时候被渲染 指令基于一个数组来渲染一个列表。 指令需要使用 形式的特殊语法,其中 是源数据数组或者对象,而 则是被迭代的数组元素的别名在 的时候,建议设置值,并且保证每个值是独一无二的,这便于算法进行优化两者在用法上二、优先级与都是模板系统中的指令在模板编译的时候,会将指令系统转化成可执行的函数编写一个标签,同时使用与 创建实例,存放与数据模板指令的代码都会生成在函数中,通过就能得到渲染函数是的列表渲染函数转载 2022-06-12 20:07:44 · 185 阅读 · 0 评论 -
前端面试宝典(Vue)
Vue 数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的。利用了 Object.defineProperty() 这个方法重新定义了对象获取属性值(get)和设置属性值(set)。一则语法糖,相当于 v-bind:value="xxx" 和 @input,意思是绑定了一个 value 属性的值, 子组件可对 value 属性监听,通过$emit('input', xxx)的方式给父组件通讯。自己实现 v-model 方式的组件也是这样的思路。看实际情况,一般在 created(或 befor原创 2022-06-02 13:19:57 · 177 阅读 · 0 评论 -
Vue3.0 里为什么要用 Proxy API 替代 defineProperty API?
Vue2.x 中的响应式实现正是基于 defineProperty 中的 descriptor,对 data 中的属性做了遍历 + 递归,为每个属性设置了 getter、setter。原创 2022-06-02 11:27:08 · 622 阅读 · 0 评论 -
Vue 中如何实现监测数组变化
vue中响应式数据的原理是通过Object.defineProperty控制getter和setter,并利用观察者模式完成的响应式设计。数组考虑性能原因没有用defineProperty对数组的每一项进行拦截,而是选择重写数组api方法。通过以上 Vue 源码部分查看,我们就能知道 Vue 框架是通过遍历数组 和递归遍历对象,从而达到利用Object.defineProperty() 也能对对象和数组(部分方法的操作)进行监听。Vue 将被侦听的数组的变更方法进行了包裹,所以它们也将会触发视图更新。原创 2022-06-02 11:15:02 · 5723 阅读 · 0 评论 -
vue 面试题汇总
vue 面试题汇总1、说说你对vue的理解?2、vue 的双向绑定的原理是什么3、说说你对SPA(单页应用)的理解?4、说说你对Vue生命周期的理解?5、为什么data属性是一个函数而不是一个对象?6、Vue中给对象添加新属性界面不刷新?7、说说你对nexttick的理解?8、Vue3有哪些新特性?9、vue-router 有哪几种导航钩子?10、mvvm 框架是什么?它和其他框架(jquery) 的区别是什么?11、什么是 vue 生命周期?有什么作用?12、active-cla原创 2022-05-30 16:32:37 · 152 阅读 · 0 评论 -
JS中基本数据类型有哪几种?null 是对象吗?基本数据和复杂数据类型有什么区别?
1、JS中基本数据类型es5定义了5种基本类型,Null、Undefined、Boolean、String、Number,es6新增了Symbol。Boolean 类型表示一个逻辑实体,有两个值:true 和 false。Null 类型表示缺少的标识,指示变量未指向任何对象。Undefined 类型一个没有被赋值的变量会有个默认值 undefined。Number 类型根据 ECMAScript 标准,Number 基于 IEEE 754 标准的双精度 64 位二进制格式的值(-(263 -1)原创 2022-05-30 15:02:30 · 415 阅读 · 0 评论 -
面试官:为什么data属性是一个函数而不是一个对象?
一、实例和组件定义data的区别vue实例的时候定义data属性既可以是一个对象,也可以是一个函数constapp=newVue({el:"#app",//对象格式data:{foo:"foo"},//函数格式data(){return{foo:"foo"}}})组件中定义data属性,只能是一个函数如果为组件data...转载 2022-05-30 10:28:03 · 434 阅读 · 0 评论 -
JavaScript 中数组去重以及数组对象去重方法总结
一、数组对象去重1、reduce方法原理,新创建一个空对象,然后利用reduce函数的特性,先看一下这个对象里是否有这个id,如果有则跳过,没有将当前值加入preval,并且赋给这个新创建的对象,最终返回的preval一定是去重后的数组对象。let arr = [ {id: 1, name: '周瑜'}, {id: 3, name: '王昭君'}, {id: 2, name: '亚瑟'}, {id: 1, name: '小乔'}, {id: 2, name: '大桥'}, {id:转载 2022-05-23 13:26:26 · 910 阅读 · 0 评论 -
js中null和undefined的相同点和不同点?
null 和undefined都是JavaScript里的简单数据类型,我们平时开发中都很常见,它们什么相同点和不同点?相同点都是空变量 都是假值,转布尔值(boolean)都是false undefined派生自nul两者在 == 下是相等的,但在 === (严格相等)下是不相等的; undefined==null // truenull === undefined //false 不同点undefined是表示变量声明过但并未赋过值,它是所有未赋值变量默认值;null表原创 2022-05-23 13:17:14 · 145 阅读 · 0 评论 -
Vue中 watch 和 computed 区别和使用场景
对于Computed:它支持缓存,只有依赖的数据发生了变化,才会重新计算 不支持异步,当 Computed 中有异步操作时,无法监听数据的变化 如果一个属性是由其他属性计算而来的,这个属性依赖其他的属性,一般会使用 computed 如果 computed 属性的属性值是函数,那么默认使用 get 方法,函数的返回值就是属性的属性值;在 computed 中,属性有一个 get 方法和一个 set 方法,当数据发生变化时,会调用 set 方法。对于Watch:它不支持缓存,当一个属性发生变化原创 2022-05-20 17:44:34 · 2330 阅读 · 0 评论 -
面试官:JavaScript中使用forEach会改变原来的数组吗?
面试官:JavaScript中使用forEach会改变原来的数组吗?JavaScript是有基本数据类型与引用数据类型之分的。原创 2022-05-15 21:41:45 · 4664 阅读 · 6 评论 -
面试官:localStorage 和 sessionStorage的区别?
localStorage 和 sessionStorage都是HTML5 专门为存储来设计的,最大可存 5M,而cookie的大小只有4Kb左右。原创 2022-05-07 14:35:25 · 244 阅读 · 0 评论 -
面试官:在vue中v-if和v-show的区别?
v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。相比之下,v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。注意,v-show 不支持<template>元素,也不支持 v-else。 一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开..原创 2022-05-06 13:07:52 · 1322 阅读 · 0 评论 -
面试官:vue中watch的属性用箭头函数定义结果会怎么样
答:this是undefined,要更改的属性会报TypeError错误, Cannot read property 'xxx' of undefined。因为箭头函数默绑定父级作用域的上下文,所以不会绑定vue实例,所以 this 是undefind。不应该使用箭头函数来定义 watcher 函数 (例如 searchQuery: newValue => this.updateAutocomplete(newValue))。理由是箭头函数绑定了父级作用域的上下文,所以 this 将不会按照.转载 2022-05-01 06:00:00 · 959 阅读 · 0 评论 -
面试官:在vue中watch和created哪个先执行?为什么?
面试官:看到你简历上写着精通Vue? --- 在vue中watch和created哪个先执行?为什么?原创 2022-04-19 13:10:32 · 9220 阅读 · 2 评论 -
简述浏览器的渲染过程,重绘和重排在渲染过程中的哪一部分(页面优化)?
基本流程包括:解析html以构建dom树 -> 构建render树 -> 布局render树 -> 绘制render树1.代码解析:浏览器向服务器请求到了 HTML 文档后便开始解析,产物是 DOM ,根据 CSS 生成 CSSOM(CSS对象模型)2.对象合成:将 DOM 和 CSSOM 合并产生渲染树(render tree)3.布局(layout):有了渲染树,知道了所有节点的样式,便根据这些节点以及样式计算它们在浏览器中确切的大小和位置原创 2022-04-13 10:09:09 · 1152 阅读 · 0 评论