本文最后更新于 123 天前,如有失效请评论区留言。
JS面试题
JS的数据类型有哪些
原始类型: Number、String、Boolean、Symbol、BigInt、String、Symbol
对象类型: Object
原型的作用是什么
JS语言通过原型实现面向对象。一个能支持面向对象的语言必须做到一点:能判定一个实例的类型。原型的存在避免了类型的丢失。
为什么js不用类型元数据(Java、c#)去实现面向对象而是使用原型?
JavaScript受到了Self(基于原型的编程语言)和Scheme(函数式编程语言)的影响,因此选择了原型作为面向对象的实现方式。原型编程和基于类的编程方式相比,更加灵活,原型对象的行为可以在运行时动态改变。
Promise解决了什么问题?
回调地狱:通过链式调用和统一的错误处理机制解决回调地狱
异步操作的统一管理:为异步操作提供了统一的接口。无论异步操作何时开始,何时结束,只要返回一个 Promise 对象,就可以以相同的方式处理。
错误处理:Promise 支持错误传播,也就是说在一个 Promise 链条中,只需要在最后加一个 catch方法,就可以捕获前面所有步骤产生的错误
并行执行和处理异步结果:通过 Promise.all 和 Promise.race,可以更好地控制异步操作的并行执行,并在所有操作完成或者有任一操作完成时及时进行下一步操作
Vue面试题
什么是Vue的响应式
设计初衷是为了实现数据和函数的联动
,当数据变化后,用到该数据的联动函数会自动重新执行。主要就是监听数据的变化执行某些操作,让UI与数据状态同步,简化复杂的UI逻辑。
网络面试题
GET和POST区别
w3schools官方定义:
- GET在浏览器回退时是无害的,而POST会弹出提示框是否再次提交请求。(GET是幂等的,多次请求相同的资源,服务器的状态并不会改变,而POST不是幂等的,每次请求都可能会改变服务器的状态。GET通常用于获取资源信息,而POST通常用于更新资源信息)
- GET产生的URL地址可以添加书签,而POST不可以。
- GET请求会被浏览器主动cache,而POST不会,除非手动设置。
- GET请求只能进行url编码(application/x-www-form-urlencoded),而POST支持多种编码方式。(application/x-www-form-urlencoded、multipart/form-data、application/json、application/xml、text/plain、application/octet-stream)
- GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
- GET请求在URL中传送的参数是有长度限制的(最大2048字符),而POST没有。(服务器处理长URL要消耗比较多的资源,为了性能和安全考虑,会给URL长度加限制)
- 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。(一般约定GET参数Params拼接在URL后,POST在body中携带参数,Get请求体为空)
- POST 比 GET 更安全,因为参数不存储在浏览器历史记录或 Web 服务器日志中(但从传输的角度来讲HTTP是明文传输,所以只有使用HTTPS才能保证数据的安全)
- GET数据显示在URL中,POST不显示在URL