web常见面试题

本文详细探讨了前端面试中常见的问题,包括CSS自定义动画、JavaScript数据类型判断、ES6新特性、闭包、柯里化和偏函数的解释、防抖与节流的应用、浏览器加载页面的过程、跨域问题及其解决方案、GET与POST请求的区别、Vue生命周期、Vue Router守卫、页面权限管理策略、页面缓存方法、Vue的双向绑定原理、页面性能分析、Git常用命令、Vue2与Vue3的区别、数据变更未触发页面更新的原因、v-if与v-show的选择、隐藏页面元素的方法、未保存数据提交的风险与防范措施、以及前端开发中的问题解决和项目管理经验。

1.css如何自定义一个动画效果

animation

2.js如何判断数据类型

typeof   Array,Null等特殊对象使用typeof一律返回object

js.constructor == 数据

Object.prototype.toString.call()

3.es6的新特性

let,const        for...of        字符串拼接模板        箭头函数        解构        set对象        map

4.说说闭包,柯里化,偏函数

闭包:函数内还有函数

优点:减少全局变量,减少传递函数的参数值,

缺点:内存泄漏

解决:把不需要的变量赋值为null

为什么造成内存泄漏:垃圾回收机制,被另一个作用域引用的变量不会被回收。

柯里化:把一个多参数的函数,转化为单参数函数(对高阶函数的降阶处理)

使用场景:减少重复传递不变的部分参数

偏函数:固定一个函数的一个或者多个参数,返回一个新的函数,这个函数用于接受剩余的参数。

5.说说防抖,节流的实际应用

防抖:事件被触发后,延迟执行回调,在执行前事件又被触发,则重新计时。

        百度搜索

节流:减少一段时间内时间的触发频率

        懒加载时要监听计算滚动条的位置    鼠标要多次点击

6.说说浏览器从输入URL到页面渲染的整个流程

1、首先浏览器在输入URL之后,会先解析URL,判断是否合法;
2、合法的话会查看浏览器缓存,判断是否有缓存,如果有缓存,则显示;
3、如果没有缓存,浏览器会向服务器发送HTTP协议,会进行DNS解析,获取IP地址;
4、浏览器和服务器进行TCP连接,进行三次握手;
5、握手成功之后,浏览器会向服务器发送http请求,请求数据包;
6、服务器处理请求,将数据返回给浏览器;
7、浏览器收到HTTP响应后,会解析它;
8、浏览器发送异步请求,然后渲染页面;

7.如何部署一个网站

1、购买域名、虚拟空间。购买完成后会有个FTP帐号,你上传你的代码,然后域名解析到你的空间,别人通过测试地址或者你的域名访问到。

2、使用自己的电脑做服务器,下载web服务器软件,常用的可以用iis,apache,然后在自己的电脑里设置一个文件夹,放网页,你把你电脑的IP给别人访问。前提是你的IP是外网的,如果是内网ip,需要做映射,将80端口开放出去。

3、直接发把代码发给用户访问。因为是html+css+js的,游览器直接可以解析。

8.为什么会有跨域问题

出于浏览器的同源策略限制,同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。

什么是跨域:

当一个请求 url 的协议、域名、端口三者之间任意一个与当前页面 url 不同即为跨域

解决方法:

使用 ajax 的 jsonp,使用该方式的缺点:请求方式只能是 get 请求

cors 设置请求路径,请求方法,dateType,成功函数,失败函数

9.GET请求和POST请求有什么区别

get的url可见,post不可见

get没post安全

get传输2-4k,post无限大

get可缓存,post不可缓存

get后退没影响,post后退重新提交

10.如果要实时展示系统最新数据,你有哪些方案

11.前端数据的存储有哪些技术,他们的区别是什么

1.存储大小

cookie:一般不超过4k

sessionStorage:5M甚至更多

localStorage:5M甚至更多

2. 数据有效期

cookie:一般由服务器生成,可以设置失效时间;若没有设置时间,关闭浏览器cookie失效,如果设置了时间,cookie就会存储在硬盘中,过期失效

sessionStorage:仅在当前浏览器窗口关闭之前有效,关闭页面或者浏览器会被清除

localStorage:永久有效,窗口或者浏览器关闭也会一直保存,除非手动永久删除

3. 作用域

cookie:在所有同源窗口中都是共享的

sessionStorage:在同一个浏览器窗口是共享的(不同浏览器,即使是统一页面也不共享)

localStorage:在所有同源窗口中共享

4. 通信

cookie:cookie在浏览器和服务器之间来回传递,如果使用cookie保存过多数据会造成性能问题

sessionStorage:仅在客户端(浏览器)中保存,不参与服务器的通信

localStorage:仅在客户端(浏览器)中保存,不参与服务器的通信

5. 应用场景

cookie:判断用户是否登录过网站,以便实现下次自动登录或记住密码;保存事件信息

sessionStorage:敏感账号一次性登录,单页面用的较多

localStorage:用于长期登录,适于长期保存在本地的数据

12. vue的生命周期有哪些

beforeCreate:骨架屏占位,日志上传

created:发起ajax请求.可以,

beforeMount:可以对一些数据进行格式化

mounted:发起ajax【推荐】前端项目多大部分都是运行在浏览器,极少是服务器端渲染

beforeUpdate:可以二次对更新的数据修改

updated:只能是观察到更新的数据

beforeDestroy:清除常驻内容的垃圾.对用户的离开行为进行提示

destroyed:啥都没了

13. vue-router有哪些守卫

  • 全局导航守卫:beforeEach(全局前置守卫)、beforeResolve(全局解析守卫)、afterEach(全局后置守卫)
  • 组件内路由守卫:beforeRouteEnter(组件激活时触发)、beforeRouteUpdate(组件被重复使用时触发)、beforeRouteLeave(组件失活时触发)
  • 路由独享守卫:beforeEnter(进入当前路由时触发)

14.如果要做页面权限管理,怎么做

接口权限

目前一般采用jwt的形式来验证,没有通过的话一般返回401,跳转到登录页面重新进行登录

登录完拿到token,将token存起来,通过axios请求拦截器进行拦截,每次请求的时候头部携带token

按钮权限

初始化即挂载全部路由,并且在路由上标记相应的权限信息,每次路由跳转前做校验
菜单权限

菜单与路由分离,菜单由后端返回

前端定义路由信息

路由权限按钮权限也可以用v-if判断

15.如何实现页面缓存,会有什么问题

存放在LocalStorage

16.说说Vue的双向绑定/响应式原理

双向绑定,就是把Model绑定到View,当我们用JavaScript代码更新Model时,View就会自动更新,在单向绑定的基础上,如果用户更新了ViewModel的数据也会自动更新。

17.如何分析页面性能

18.常用的git命令有哪些

19.相对于vue2,vue3有哪些改变,不全

 Vue3 组合式 API 需要先引入;Vue2 选项 API 则可直接调用

vue2八个生命周期函数,vue3六个

vue2的根节点(div)只能有一个,vue3可以是多个

Vue2 响应式原理基础是Object.defineProperty;Vue3 响应式原理基础是 Proxy

20.项目中遇到过哪句题,你是如何解决的

21.平时如何学习的

22.假如要开发一个web版vS code,有什么想法,有哪些东西需要考虑

23.什么时候更新了data中的数据,但是会出现页面没更新的情况

自己写个变量,没放在data这个函数里

Vue 不能检测利用数组索引直接修改一个数组项

Vue 不能监测直接修改数组长度的变化

24.v-if和v-show的区别

v-if比v-show更消耗性能

如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好

25.如何控制页面元素不显示

display:none;

26.用户修改了页面数据,但是没有经过保存就提交审批,会出现什么问题,如何避免

内容不完整,防抖事件,停止输入自动保存

27.说说你项目中遇到过什么问题,如何解决的

28.某页面渲染时间过长,如何分析性能瓶颈在哪里

29.是否进行过单元测试,单元测试的作用,如何进行。

30.项目中自定义组件如何绑定事件及属性

31.说说watch和computed对象,

32.项目拥有多个环境,如何进行版本管控

33.说说闭包,开发中的实际应用

34.值传递和引用传递

值传递:将数据(值)进行了一次拷贝,值传递如果数据发生改变,不会影响拷贝之前的那个数据

引用传递:将索引进行了一份拷贝,因此拷贝的索引还会指向同一块内存空间。如果引用传递将数据修改后,那么会影响拷贝之前的数据,因为索引的指向 指向同一个内存空间

35.如何遍历树,有哪几种顺序

递归,

36.说说DFS和BFS

深度优先搜索(DFS)和宽度优先搜索(BFS)都是常见的搜索算法。

37. package.json中包括哪些常见内容

38.前端项目交接,需要交接哪些内容

39.如何实现选中复制

40.对CI/CD有没有了解

原型链

当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么他就会去prototype里找这个属性,这个prototype又会有自己的prototype,于是就这样一直找下去,也就是我们平时所说的原型链的概念。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值