面试题
没有天赋全靠手打
一边学习,一边分享
展开
-
在Vue3的setup中如何使用this
如果想要在setup函数中访问组件实例的属性或方法,可以使用Vue3提供的两个新的函数:getCurrentInstance和ctx。在上面的例子中,我们通过getCurrentInstance函数获取了当前组件实例对象,并通过instance.data.message和instance.ctx.sayHello访问了组件实例的数据和方法。在Vue3中,setup函数中的this指向的是undefined,因为setup函数是在组件实例化之前执行的,此时还没有this对象。原创 2023-04-13 11:40:48 · 5277 阅读 · 1 评论 -
剑指 Offer 50. 第一个只出现一次的字符
个人理解 :做了一个很简单的算法题,开始写想到的解法是 : 遍历数组, 依次存进一个新数组,第二次存进去的字符splice出去,最后输出新数组中第一个元素。看似好像也没啥错误,但不知为啥测试用例不通过,于是在评论区找到一个解法!太简单了,利用数组的原生属性 indexof 和 lastindexof。在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。s 只包含小写字母。这是我找到的最通俗易懂的解法,大家也可以帮我看看我的解法有何问题!输入:s = “abaccdeff”原创 2022-09-13 10:19:11 · 185 阅读 · 0 评论 -
Vue 的响应式原理中 Object.defineProperty 的缺陷
浅谈 Vue2 中的 双向数据绑定原理:采用数据劫持 结合 发布者-订阅者模式 的方式,通过 Object.defineProperty()来劫持各个属性的setter 和 getter。Object.defineProperty(object, propertyname, descriptor)是给对象添加属性用的,三个参数分别是 对象、属性名、要添加的属性值Object.defineProperty 的缺陷1、无法监控到数组下标的变化,通过数组下标修改元素,无法实时响应2、只能劫持对象的属性,如原创 2022-06-21 17:42:59 · 1327 阅读 · 0 评论 -
CSS中隐藏页面元素的几种方式和区别
总结方法:元素不可见,不占据空间,会导致浏览器重排的重绘,无法响应点击事件从页面上隐藏,DOM依旧存在,不会发生重排,但是会发生重绘。表示元素的透明度,只是页面上透明度为0,自身事件仍然可以触发重绘 :元素外观导致的浏览器行为,比如 : 修改CSS样式重排 : DOM元素被JS触发,渲染树需要重新计算...原创 2022-06-13 17:17:36 · 306 阅读 · 0 评论 -
link 和 import 标签的区别
link 和 import 标签的区别link 属于HTML标签,而@import 是css提供的。页面被加载时,link 会同时被加载,而 @import 引用的 css 会等到页面加载结束后加载。link 是 html 标签,因此没有兼容性,而 @import 只有 IE5 以上才能识别。link 方式样式的权重高于 @import 的...原创 2022-04-15 10:39:59 · 300 阅读 · 0 评论 -
js中写一个函数,第一秒打印1,第二秒打印2
js中写一个函数,第一秒打印1,第二秒打印21、用let块级作用域for(let i = 0;i<5;i++){ setTimeout(()=>{ console.log(i); },1000*i)}2、闭包for(var i = 0; i < 5; i++){ (function(i){ setTimeout(()=>{ console.log(i); },1000*i)原创 2022-04-14 17:58:22 · 1222 阅读 · 0 评论 -
JS数据类型
JS数据类型基本类型 :Boolean Null Undefined Number String Symbol(ES6出的,表示独一无二的值)引用类型 : Object原始数据类型和引用类型的区别在内存中的存储方式不同,原始数据类型在内存中是栈存储,引用类型是堆存储栈(stack)为自动分配的内存空间,它由系统自动释放;而堆(heap)则是动态分配的内存,大小不定也不会自动释放。在内存中存储方式的不同导致了原始数据类型不可变,原始数据类型和引用数据类型做赋值操作一个是传值一个是传址...原创 2022-04-08 17:40:31 · 124 阅读 · 0 评论 -
JS中&& 和 || 的优先级与运算
JS中&& 和 || 的优先级与运算在javascript中,会被当成 false 处理的值有 :"",false,0,null,undefined,NaN,其余都为true,(字符串 "false"会被当做true处理)&& 和 || 的计算原则a || b:如果a是true,返回a。如果a是false,直接返回b。a && b:如果a是true,那么返回b。如果a是false,返回a。来个例子 var a = new Object(), b=0原创 2022-04-08 15:26:35 · 2752 阅读 · 0 评论 -
axios的使用方式有几种?
axios的使用方式有几种?第一种 :直接挂载在原型上import axios from "axios"Vue.prototype.$axios = axios ;第二种 :封装一个拦截器,有请求拦截器和响应拦截器,同时挂载到原型上,(缺点:只要是vue的实例上面都会挂载,消耗性能大)import axios from "axios"let $axios = axios.create({ baseURL: '',// 接口地址 timeout:5000,// 设置超时时间})// 请求原创 2022-04-07 20:20:38 · 968 阅读 · 0 评论 -
[‘1‘,‘2‘,‘3‘].map(parseInt) what & why ?
[‘1’,‘2’,‘3’].map(parseInt) what & why ?答案 : [1,NaN,NaN]首先 看到这道题目的时候,脑海里跳出的答案 【1,2,3】,但是为什么这个答案不正确呢?回顾一下:map 函数的参数array.map(function(currentValue, index, arr), thisIndex)map 函数接受的第一个参数为一个函数(必选),其中函数参数有:currentValue : 必须,当前元素的值index : 可选,当前元素的原创 2021-05-20 16:30:08 · 127 阅读 · 0 评论