面试总结五月三十日

vue路由的两种模式

Vue 路由模式 hash 和 history,简单讲一下Hash 模式地址栏中有#,history 没有,history 模式下刷新,会出现 404 情况,需要后台配置使用 JavaScript 来对 loaction.hash 进行赋值,改变 URL 的 hash值可以使用 hashchange 事件来监听 hash 值的变化HTML5 提供了 History API 来实现 URL 的变化。其中最主要的 API有以下两个:history.pushState() 和 history.repalceState()。这两个API 可以在不进行刷新的情况下,操作浏览器的历史纪录。唯一不同的是,前者是新增一个历史记录,后者是直接替换当前的历史记录

js数据类型

String、Number、Boolean、Null、Undefined、Symbol、BigInt

let const var 的区别

1.  var和let作用都是用作声明变量,const声明一个常量,
2.  var的声明是变量提升,能够作用于全局,而let和const作用于局部的
3.  var是能够重复声明的而let和const是只能声明一次的
4.  var和let的值在声明后是可以改变的,而const声明的常量是只读的不可改变,但对于对象和数据这种引用类型,内存地址不能修改,可以修改里面的值。

vue生命周期

beforeCreate(创建实例)
created(创建完成)、
beforeMount(开始创建模板)
mounted(创建完成)、
beforeUpdate(开始更新)
updated(更新完成)、
beforeDestroy(开始销毁)
destroyed(销毁完成)

created和mounted这两个生命周期中数据请求的区别

created是在组件实例一旦创建完成的时候立刻调用,这时候页面dom节点并未生成mounted是在页面dom节点渲染完毕之后就立刻执行的触发时机上created是比mounted要更早的两者相同点∶都能拿到实例对象的属性和方法讨论这个问题本质就是触发的时机,放在mounted请求有可能导致页面闪动(页面dom结构已经生成),但如果在页面加载前完成则不会出现此情况建议:放在create生命周期当中

数组去重

Set实现去重

let originalArray = [1,2,3,4,1,2,3,4]
let uniqueArray = array =>[...new Set( array) ]
// or
let uniqueArray = Array .from( new Set(originalArray))
// uniqueArray = [1,2,3,4]

深拷贝实现

function deepclone(obj) {
var target = {};
for (var key in obj) {
if (object.prototype.hasOwnProperty.call(obj, key)) {
if (typeof obj[ key] === 'object ' ) {
target[ key] = deepclone(obj[ key]);}else {
target[ key] = obj[ key];
}
}
}
return target;
}

watch与computed区别总结

computed支持缓存,相依赖的数据发生改变才会重新计算; watch不支持缓存,只要监听的数据变化就会触发相应操作computed不支持异步,当computed内有异步操作时是无法监听数据变化的; watch支持异步操作
computed属性的属性值是一函数,函数返回值为属性的属性值,computed中每个属性都可以设置set与get方法。watch监听一的数据必须是data中声明过或父组件传递过来的props中的数据,当数据变化时,触发监听器
posted @ 2023-05-30 17:57  Mr、Kr  阅读(21)  评论(0编辑  收藏  举报