cvte一面

Vue-Router相关:hash模式,#
箭头函数
箭头函数 + this代码输出题
如何改变this的指向
事件循环
事件循环代码输出题
会话cookie和持久化cookie有什么区别?
expire和max-age有什么区别?max-age是基于什么的?
cookie还有什么属性?
跨域cookie问题怎么解决?
Vue组件传值
promise相关,async await,generator
CSS:实现一个九宫格(grid,flex);实现一个点数为5的骰子(只有五个子元素)
场景题
背景:页面加载时,我们要会有一个loading,但页面加载很快,loading一闪而过。
问题:解决loading一闪而过
实现:我们要让loading加载0.5s后再进行其他渲染,如何实现?

算法

哈希表

image.png
image.png
image.png
image.png

每日一题

image.png

手撕

  1. // 数组扁平化,就是吧一个嵌套多层的数组array转换成只有一层的数组
  2. let arr = [1,2,[3,4,[5]]]
  3. // 方法一
  4. // 递归
  5. function myFlatten(arr){
  6. let resArray = [];
  7. // 遍历数组
  8. for(let i=0; i<arr.length; i++){
  9. if(Array.isArray(arr[i])){
  10. resArray = resArray.concat(myFlatten(arr[i]));
  11. }else{
  12. resArray.push(arr[i]);
  13. }
  14. }
  15. return resArray;
  16. }
  17. console.log(myFlatten(arr)); // [ 1, 2, 3, 4, 5 ]
  18. // 方法二 reduce
  19. function myFlatten2(arr){
  20. return arr.reduce((pre, cur) => {
  21. return pre.concat(Array.isArray(cur) ? myFlatten2(cur) : cur);
  22. },[])
  23. }
  24. console.log(myFlatten2(arr)) // [ 1, 2, 3, 4, 5 ]
  25. // 方法三 扩展运算符 扩展运算符一次只能扩展一层
  26. function myFlatten3(arr){
  27. while(arr.some((item) => Array.isArray(item))){
  28. arr = [].concat(...arr);
  29. }
  30. return arr;
  31. }
  32. console.log(myFlatten3(arr)) // [ 1, 2, 3, 4, 5 ]