2024 前端面试题总结大全 及 答案

3、怎么理解js中的内存泄露


定义:程序不需要的内存,由于某些原因其不会返回到操作系统或者可用内存池中。 内存泄露会导致(运行缓慢 ,高延迟,崩溃)的问题

常见的导致内存泄露的原因有:

1;意外的全局变量

2;被遗忘的计时器或回调函数

3;脱离文档的DOM的引用

4;闭包

4、跨域问题


由于浏览器的同源策略会导致跨域,同源策略又分为

一:DOM同源策略:禁止对不同源页面的DOM进行操作,主要是不同域名的ifram是限制互相访问的

二:xmlHttpRequest同源策略:禁止使用XHR对象向不同源的服务器地址发起http请求,只要域名 协议 端口有一个不同都被当做不同的域之间的请求,即跨域请求

解决方式:

1、CORS跨域资源共享 后端需要设置Access–Control-Allow-Credentials:true

2、jsonp实现跨域:动态创建script,利用src属性进行跨域

3、 nginx代理跨域

4、nodejs中间件代理跨域

5、WebSokect协跨域

6、window.name+ifram跨域

5、vuex:Vue.js应用程序的状态管理模式+库。


1、state

保存vuex中的数据源,通过this.$store.state获取

2、getters

用于监听state中的值的变化,返回计算后的结果。getter的返回值会根据它的依赖被缓存起来

3、mutations

是修改store中的值得唯一方式

4、action

官方建议提交一个actions,在actions中提交mutations再去修改状态值。 this.$store.dispatch(‘add’)

//this.$store.commit(‘add’)

5、modules 模块化

6、vue的生命周期


Vue 实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、卸载等一系列过程,我们称这是 Vue 的生命周期。通俗说就是 Vue 实例从创建到销毁的过程,就是生命周期。

beforeCreate: vue元素的挂载元素el和数据都为undefined,还未初始化;

created:vue实例的数据对象data有了,el还没有;

beforeMount:vue实例的$el和data都初始化了,但是还挂载在之前的虚拟dom节点上,data.message还未替换;

mounted:vue实例挂载完成,data.message成功渲染。

更新前后:data变化时会触发beforeUpdate和updated方法;

销毁前后:beforeDestory和destoryed,在执行destoryed方法后,对data的改变不会触发周期函数,说明vue实例已经解除了事件监听以及dom绑定,但是dom结构依然存在;

vue生命周期的作用:

他的生命周期中有多个事件钩子,让我们控制整个vue实例的过程时更容易形成良好的逻辑。

生命周期钩子的一些使用方法:

beforeCreate:loading事件,在加载实例时触发。

created:初始化完成事件,异步请求。

mounted:挂载元素,获取dom节点

uptaded:对数据统一处理

beforeDestory:确认事件停止。

nextTick:更新数据后立即操作dom。

7、computed和watch的区别


computed

计算结果并返回,只有当被计算的属性发生改变时才会触发(即:计算属性的结果会被缓存,除非依赖的响应属性变化才会重新及孙)

watch

监听某一个值,当被监听的值发生变化时,执行相关操作。(与computed的区别是,watch更加适用于监听某一个值得变化,并做对应操作,比如请求后太接口等。而computed适用于计算已有的值并返回结果。)

监听简单数据类型:

data(){

return{

‘first’:2

}

},

watch:{

first(){

console.log(this.first)

}

},

8、json和xml数据的区别


1、数据体积方面:xml是重量级的,json是轻量级的,传递的速度更快些。。

2、数据传输方面:xml在传输过程中比较占带宽,json占带宽少,易于压缩。

3、数据交互方面:json与javascript的交互更加方便,更容易解析处理,更好的进行数据交互

4、数据描述方面:json对数据的描述性比xml较差

5、xml和json都用在项目交互下,xml多用于做配置文件,json用于数据交互。

9、http和https的区别


Http:超文本传输协议(Http,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。设计Http最初的目的是为了提供一种发布和接收HTML页面的方法。它可以使浏览器更加高效。Http协议是以明文方式发送信息的,如果黑客截取了Web浏览器和服务器之间的传输报文,就可以直接获得其中的信息。

Https:是以安全为目标的Http通道,是Http的安全版。Https的安全基础是SSL。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:SSL记录协议(SSL Record Protocol),它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Handshake Protocol),它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

HTTP与HTTPS的区别

1、HTTP是超文本传输协议,信息是明文传输,HTTPS是具有安全性的SSL加密传输协议。

2、HTTPS协议需要ca申请证书,一般免费证书少,因而需要一定费用。

3、HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样。前者是80,后者是443。

4、HTTP连接是无状态的,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,安全性高于HTTP协议。

https的优点

尽管HTTPS并非绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击,但HTTPS仍是现行架构下最安全的解决方案,主要有以下几个好处:

1)使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;

2)HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。

3)HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

4)谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
82500575)]

[外链图片转存中…(img-oMehMM1K-1715282500576)]

[外链图片转存中…(img-x7e2xrt6-1715282500576)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 19
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值