【前端】项目碰到的面试题整理

这篇具有很好参考价值的文章主要介绍了【前端】项目碰到的面试题整理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、目录

  1. js 中一个 = 、= 的区别 ?..
  2. es6 语法中将两个对象合并成一个对象,使用什么语法?…
  3. let、const、var 有什么区别?…
  4. jquery 中如何获取当前元素下一个同级元素?…
  5. JS 中的深拷贝与浅拷贝的区别?…
  6. 如何在 JS 中编码和解码 URL…
  7. 请描述一下 cookie,sessionStorage 和 localStorage 的区别…
  8. 什么是 MVVM?…
  9. 你知道 vue2.0 兼容 IE 哪个版本以上吗?…
  10. v-show 和 v-if 的区别?..
  11. 组件之间怎么进行传值?..
  12. 路由的两种跳转方式…
  13. 为什么避免 v-if 和 v-for 一起用?…
  14. computed 和 watch 有什么区别?..
  15. vue 组件的 scoped 属性的作用…
  16. Vue 组件中 data 为什么必须是函数…
  17. route 和 router 的区别是什么?…
  18. 为什么需要 nextTick?..
  19. 请详细说下你对 vue 生命周期的理解…
  20. Vue2.0 中为什么会出现 vue 修改数据后页面没有刷新这个问题?…
  21. 动态给 vue 的 data 添加一个新的属性时会发生什么?怎样解决…
  22. vue 怎么获取 DOM 节点?…
  23. 分析下 vue 项目本地开发完成后部署到服务器后报 404 是什么原因呢?.
  24. vue 能监听到数组变化的方法有哪些?为什么这些方法能监听到呢?…
  25. 怎么将 axios 异步请求同步化处理?…

二、答案

  1. js 中一个 = 、= 的区别 ? = 赋值 === 严格判断,值和类型都相等返回 true == 抽象相等,比较时会先转换类型在作值得比较,只要值相等返回 true
  2. es6 语法中将两个对象合并成一个对象,使用什么语法?
    Object.assign()
  3. let、const、var 有什么区别?
    const 定义的变量不可以修改,而且必须初始化。
    var 定义的变量可以修改,如果不初始化会输出 undefined,不会报错(存在变量提升现象)
    let 是块级作用域,函数内部使用 let 定义后,对函数外部无影响(不存在变量提升)
  4. jquery 中如何获取当前元素下一个同级元素?
    $(当前元素).next()
  5. JS 中的深拷贝与浅拷贝的区别?
    深拷贝递归地复制新对象中的所有值或属性,而拷贝只复制引用。
    在深拷贝中,新对象中的更改不会影响原始对象,而在浅拷贝中,新对象中的更改,原始对象中也会
    跟着改。
    在深拷贝中,原始对象不与新对象共享相同的属性,而在浅拷贝中,它们具有相同的属性。
    6.如何在 JS 中编码和解码 URL
    encodeURI() 函数用于在 JS 中对 URL 进行编码。它将 url 字符串作为参数并返回编码的字符串
    注意: encodeURI()不会编码类似这样字符: / ? : @ & = + $ #,如果需要编码这些字符,请使用
    encodeURIComponent() 节码需要 decodeURIComponent()
    decodeURI() 函数用于解码 js 中的 URL。它将编码的 url 字符串作为参数并返回已解码的字符串
    7.请描述一下 cookie,sessionStorage 和 localStorage 的区别
    相同点:都存储在客户端
    不同点:
    (1).存储大小
    cookie 数据大小不能超过 4k。 sessionStorage 和 localStorage 虽然也有存储大小的限制,但比 cookie 大得多,可以达到 5M
    或更大。
    (2).有效时间
    localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;
    sessionStorage 数据在当前浏览器窗口关闭后自动删除。
    cookie 设置的 cookie 过期时间之前一直有效,即使窗口或浏览器关闭
    (3). 数据与服务器之间的交互方式
    cookie 的数据会自动的传递到服务器,服务器端也可以写 cookie 到客户端
    sessionStorage 和 localStorage 不会自动把数据发给服务器,仅在本地保存
    8.什么是 MVVM?
    MVVM 是 Model-View-ViewModel 的缩写。MVVM 是一种设计思想。Model 层代表数据模型,也可以在
    Model 中定义数据修改和操作的业务逻辑;View 代表 UI 组件,它负责将数据模型转化成 UI 展现出来,
    ViewModel 是一个同步 View 和 Model 的对象。
    在 MVVM 架构下,View 和 Model 之间并没有直接的联系,而是通过 ViewModel 进行交互,Model 和
    ViewModel 之间的交互是双向的, 因此 View 数据的变化会同步到 Model 中,而 Model 数据的变化也会
    立即反应到 View 上。
    ViewModel 通过双向数据绑定把 View 层和 Model 层连接起来,而 View 和 Model 之间的同步工作
    完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作 DOM, 不需要关注数据状
    态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。
    9.你知道 vue2.0 兼容 IE 哪个版本以上吗?
    不兼容 IE8 及以下的
    因为 vue 的响应式原理是基于 es5 的 Object.defineProperty 的,而这个方法不支持 ie8 及以下的
  6. v-show 和 v-if 的区别?
    v-show 是 CSS 切换,v-if 是完整的销毁和重新创建(使用频繁切换时使用 v-show,运行时较少改变使用
    v-if)
    v-show 仅仅控制元素的显示方式,将 display 属性在 block 和 none 中来回切换;而 v-if 会控制这个 DOM
    节点的存在与否。当我们需要经常切换某个元素的显示/隐藏时,使用 v-show 更能节省性能上的开销;当只
    需要一次显示/隐藏时,使用 v-if 更合理
  7. 组件之间怎么进行传值?
    父组件通过标签上:data=data 方式定义传值
    子组件通过 props 方法接受数据
    子组件通过$emit 方法传递参数
  8. 路由的两种跳转方式
 <router-link to='home'> router-link 标签会渲染为<a>标签,咋填 template 中的跳转都是这
种;
另一种是编程是导航 也就是通过 js 跳转 比如 router.push('/home')
  1. 为什么避免 v-if 和 v-for 一起用?
    当 Vue 处理指令时,v-for 比 v-if 具有更高的优先级,通过 v-if 移动到容器元素,不会再重复遍历列表中
    的每个值。取而代之的是,只检查它一次,且不会在 v-if 为否的时候运算 v-for。
  2. computed 和 watch 有什么区别?
    computed 是计算属性,也就是计算值,它更多用于计算值的场景
    computed 具有缓存性,computed 的值在 getter 执行后是会缓存的,只有在它依赖的属性值改变之后,
    下一次获取 computed 的值时重新调用对应的 getter 来计算 computed 适用于计算比较消耗性能的计算场景
    watch 更多的是[观察]的作用,类似于某些数据的监听回调,用于观察 props $emit 或者本组件的值,当
    数据变化时来执行回调进行后续操作无缓存性,页面重新渲染时值不变化也会执行
    当我们要进行数值计算,而且依赖于其他数据,那么把这个数据设计为 computed
    如果你需要在某个数据变化时做一些事情,使用 watch 来观察这个数据变化。
  3. vue 组件的 scoped 属性的作用
    在 style 标签上添加 scoped 属性,以表示它的样式作用于当下的模块,很好的实现了样式私有化的目的;
  4. Vue 组件中 data 为什么必须是函数
    vue 组件中 data 值不能为对象,因为对象是引用类型,组件可能会被多个实例同时引用。
    如果 data 值为对象,将导致多个实例共享一个对象,其中一个组件改变 data 属性值,其它实例也会受到影
    响。
  5. route 和 router 的区别是什么?
    route 是“路由信息对象”,包括 path,params,hash,query,fullPath,matched,name 等路由信息参数。
    router 是“路由实例对象”,包括了路由的跳转方法(push、replace),钩子函数等。
  6. 为什么需要 nextTick?
    Vue 是异步修改 DOM 的并且不鼓励开发者直接接触 DOM,但有时候业务需要必须对数据更改–刷新
    后的 DOM 做相应的处理,这时候就可以使用 Vue.nextTick(callback)这个 api 了。
  7. 请详细说下你对 vue 生命周期的理解
    总共分为 8 个阶段创建前/后,载入前/后,更新前/后,销毁前/后。
    创建前/后:在 beforeCreated 阶段,vue 实例的挂载元素 e l 和数据对象 d a t a 都为 u n d e f i n e d ,还未初始化。在 c r e a t e d 阶段, v u e 实例的数据对象 d a t a 有了, el 和数据对象 data 都为 undefined,还未初始 化。在 created 阶段,vue 实例的数据对象 data 有了, el和数据对象data都为undefined,还未初始化。在created阶段,vue实例的数据对象data有了,el 还没有。
    载入前/后:在 beforeMount 阶段,vue 实例的$el 和 data 都初始化了,但还是挂载之前为虚拟的 dom
    节点,data.message 还未替换。在 mounted 阶段,vue 实例挂载完成,data.message 成功渲染。
    更新前/后:当 data 变化时,会触发 beforeUpdate 和 updated 方法。
    销毁前/后:在执行 destroy 方法后,对 data 的改变不会再触发周期函数,说明此时 vue 实例已经解除
    了事件监听以及和 dom 的绑定,但是 dom 结构依然存在
  8. Vue2.0 中为什么会出现 vue 修改数据后页面没有刷新这个问题?
    受 ES5 的限制,Vue.js 不能检测到对象属性的添加或删除。因为 Vue.js 在初始化实例时将属性转为
    getter/setter,所以属性必须在 data 对象上才能让 Vue.js 转换它,才能让它是响应的。
  9. 动态给 vue 的 data 添加一个新的属性时会发生什么?怎样解决
    如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。如果想要使添加的值做到响应式,
    应当使用 s e t ( ) 来添加对象。 22 v u e 怎么获取 D O M 节点?我们在 v u e 中需要操作某一个元素的时候,可以在元素上添加 r e f 属性,使用 set()来添加对象。 22 vue 怎么获取 DOM 节点? 我们在 vue 中需要操作某一个元素的时候,可以在元素上添加 ref 属性,使用 set()来添加对象。22vue怎么获取DOM节点?我们在vue中需要操作某一个元素的时候,可以在元素上添加ref属性,使用refs 来获取到该元素,进
    而进行一些列操作
  10. 分析下 vue 项目本地开发完成后部署到服务器后报 404 是什么原因呢?
    1.检查 nginx 配置,是否正确设置了资源映射条件;
    2.检查 vue.config.js 中是否配置了 publicPath,若有则检查是否和项目资源文件在服务器摆放位置一致。
  11. vue 能监听到数组变化的方法有哪些?为什么这些方法能监听到呢?
    数组的 push、pop、shift、unshift、splice、sort、reverse 七种方法,Vue 源码中对这七种方法重写进行
    重写
  12. 怎么将 axios 异步请求同步化处理?
    使用 asyns/await

文章来源地址https://www.toymoban.com/news/detail-856709.html

到了这里,关于【前端】项目碰到的面试题整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【前端】vue.js从入门到项目实战笔记

    【前端目录贴】 文本插值中的代码被解释为节点的文本内容,而HTML插值中的代码则被渲染为视图节点。 3.1.1 文本插值 文本插值的方式:用 双大括号 将要绑定的变量、值、表达式括住就可以实现,Vue将会 获取计算后的值 ,并以 文本的形式 将其展示出来。 结果: 3.1.2 HTM

    2024年01月21日
    浏览(38)
  • vue3创建项目报错Vue.js - The Progressive JavaScript Framework TypeError: (0 , import_node_ut

    报错信息: Vue.js - The Progressive JavaScript Framework TypeError: (0 , import_node_util.parseArgs) is not a function     at init (C:UsersAdministratorAppDataLocalnpm-cache_npx2f7e7bff16d1c534node_modulescreate-vueoutfile.cjs:4481:72)     at Object.anonymous (C:UsersAdministratorAppDataLocalnpm-cache_npx2f7e7bff16d1c534node_module

    2024年04月10日
    浏览(111)
  • 前端vue项目使用Decimal.js做加减乘除求余运算

    运算结果是Decimal对象,需要使用.toNumber()转为数字

    2024年04月13日
    浏览(41)
  • Vue.js 3 项目开发:迈向现代化前端开发的必经之路

    随着前端技术的不断发展,Vue.js作为一种轻量级的JavaScript框架,已经逐渐成为了前端开发者的首选。Vue.js 3有哪些新特性、优势以及如何高效地进行项目开发呢? Vue.js是一种用于构建用户界面的渐进式框架。它的核心库专注于视图层,易于与其他库或现有项目集成。Vue.js 3是

    2024年01月23日
    浏览(38)
  • 前端基础自学整理|HTML + JavaScript + DOM事件

    目录 一、HTML 1、Html标签 2、Html元素 3、基本的HTML标签 二、CSS 样式 层叠样式表 三、JavaScript 使用示例 四、HTML DOM  通过可编程的对象模型,javaScript可以: window document 1、查找HTML元素 2、操作HTML元素 获取元素的属性 四、HTML DOM事件 ⚠️是DOM提供的API Html是用来描述网页的一

    2024年02月22日
    浏览(37)
  • 最新前端面试题整理

    常见浏览器的内核分别是什么? IE浏览器:Trident 内核 Firefox浏览器:Gecko内核 Safari浏览器:Webkit内核 Opera浏览器:最初是Presto内核,后来是Webkit,现在是Blink内核 Chrome浏览器:Blink(以前是Webkit内核,现在是Blink内核) WEB标准以及W3C标准是什么? 1、标签闭合 2、标签小写 3、嵌套正

    2024年02月06日
    浏览(23)
  • 前端面试题整理11

    目录 1.Js中什么是原型?原型的使用场景有哪些? 2.Js中深拷贝和浅拷贝有哪些?有什么区别? 3.什么是递归?有哪些使用场景?

    2024年02月07日
    浏览(45)
  • 常见前端面试题整理(带答案)

    (1)根据内容的语义化,选择合适的标签。便于开发人员阅读和写出更优雅的代码,也便于团队后期的开发和维护; (2)在没有CSS,或者CSS尚未加载的时候,页面也能够呈现出很好的内容结构、代码结构(如标题和正文分开); (3)有利于搜索引擎优化。搜索引擎依赖于

    2024年02月07日
    浏览(36)
  • 前端开发面试题及答案整理(合集)

      前端开发面试题及答案 1、对Web标准以及W3C的理解与认识? 答:标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链CSS和JS脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组

    2024年02月17日
    浏览(32)
  • 前端项目部署自动检测更新后通知用户刷新页面(前端实现,技术框架vue、js、webpack)——方案一:编译项目时动态生成一个记录版本号的文件

    当我们重新部署前端项目的时候,如果用户一直停留在页面上并未刷新使用,会存在功能使用差异性的问题,因此,当前端部署项目后,需要提醒用户有去重新加载页面。 vue、js、webpack 编译项目时动态生成一个记录版本号的文件 轮询(20s、自己设定时间)这个文件,判断版

    2024年02月02日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包