随笔分类 - 大厂面试
手写lodash.set
摘要:// 处理 path, path有三种形式:'a[0].b.c'、'a.0.b.c' 和 ['a','0','b','c'],需要统一处理成数组,便于后续使用 function toArrayPath(path) { if (Array.isArray(path)) { return path; }
阅读全文
骨架屏
摘要:// skeleton.entry.js import Vue from 'vue' import Skeleton from './skeleton.vue' export default new Vue({ // 根实例简单的渲染应用程序组件 render: h => h(Skeleton) }
阅读全文
从vue的$nextTick看宏任务、微任务
摘要:1、nextTick调用方法 首先看nextTick的调用方法: https://cn.vuejs.org/v2/api/#Vue-nextTick // 修改数据 vm.msg = 'Hello' // DOM 还没有更新 Vue.nextTick(function () { // DOM 更新了
阅读全文
前端数据脱敏处理方法
摘要:数据脱敏常用于手机号、身份证号等敏感信息中 方法一: /** * 关键信息隐藏 * @param str 字符串 * @param frontLen 字符串前面保留位数 * @param endLen 字符串后面保留位数 * @returns {string} */ function hideCod
阅读全文
vue开发技巧总结
摘要:1.require.context() 1.场景:如页面需要导入多个组件,原始写法: import titleCom from '@/components/home/titleCom' import bannerCom from '@/components/home/bannerCom' impor
阅读全文
前端模块化,AMD,CMD 面试总结
摘要:commonJS,CMD/AMD对应类似的实现是 noedJs(webpack)/RequireJs/SeaJs AMD/CMD主要针对浏览器端。 模块化一个模块化实现特定功能,组织JS中的业务逻辑,都可以称为模块化。这种模块化类似于 java中的包 直接引入,即插即用,不会产生变量冲突,就是如此便
阅读全文
Object.create()和new object()和{}的区别
摘要:Object.create()介绍Object.create(null) 创建的对象是一个空对象,在该对象上没有继承 Object.prototype 原型链上的属性或者方法,例如:toString(), hasOwnProperty()等方法 Object.create()方法接受两个参数:Obj
阅读全文
Vue3 和vue2 的响应式有什么区别,Proxy 无敌?(面试热门,源码详解)
摘要:前言 大家都知道,Vue2 里的响应式其实有点像是一个半完全体,对于对象上新增的属性无能为力,对于数组则需要拦截它的原型方法来实现响应式。 举个例子: let vm = new Vue({ data() { return { a: 1 } } }) // ❌ oops,没反应! vm.b = 2 l
阅读全文
字节跳动面试官:请你实现一个大文件上传和断点续传
摘要:前言 这段时间面试官都挺忙的,频频出现在博客文章标题,虽然我不是特别想蹭热度,但是实在想不到好的标题了-。-,蹭蹭就蹭蹭 :) 事实上我在面试的时候确实被问到了这个问题,而且是一道在线 coding 的编程题,当时虽然思路正确,可惜最终也并不算完全答对 结束后花了一段时间整理了下思路,那么究竟该如何
阅读全文
前端进阶算法:链表(+leetcode刷题)
摘要:引言 链表相对于数组来说,要复杂的多,首先,链表不需要连续的内存空间,它是由一组零散的内存块透过指针连接而成,所以,每一个块中必须包含当前节点内容以及后继指针。最常见的链表类型有单链表、双链表以及循环链表。 学习链表最重要的是 多画图多练习 ,没有捷径可循,在遇到链表问题时,瓶子君总结了一下,可以按
阅读全文
JS中的递归
摘要:递归基础 递归的概念 在程序中函数直接或间接调用自己 直接调用自己 间接调用自己 跳出结构,有了跳出才有结果 递归的思想 递归的调用,最终还是要转换为自己这个函数 如果有个函数foo,如果他是递归函数,到最后问题还是转换为函数foo的形式 递归的思想就是将一个未知问题转换为一个已解决的问题来实现 f
阅读全文
substr与substring的区别
摘要:语法:substr(start [,length]) 第一个字符的索引是0,start必选 length可选 substring(start [, end]) 第一个字符的索引是0,start必选 end可选 相同点:当有一个参数时,两者的功能是一样的,返回从start指定的位置直到字符串结束的子串
阅读全文
slice()与splice()的区别
摘要:一、slice(start,end) 从start开始截取到end但是不包括end返回值为截取出来的元素的集合原始的数组不会发生变化 //例子 var arr1 = [1,23,44,55,66,77,888,"fff"]; var arr2 = arr1.slice(2,4) //从index为2
阅读全文
ES6数组的解构赋值详解
摘要:数组的解构赋值 基本用法 ES6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值,这被称之为解构(Destructuring) // 以前为变量赋值,只能直接指定值 var a = 1; var b = 2; var c = 3; // ES6允许写成这样 var [a,b,c] = [1,
阅读全文
JS 统计一个字符串中出现次数最多字母
摘要:一个感觉很平凡的,常常在面试中出现的题目,拥有各种实现形式也就显示出 JS 水平的不同。 首先,简单的来一个基本思路的计算方式: function maxNumLetter( str ){ var lettersObj = {}, len = str.length, letter, letterNu
阅读全文
JS二分法查找
摘要:function getIndex(arr,num){ var len = arr.length, st = 0, end = len-1 while(st<=end){ var mid = Math.floor((st+end)/2) if(num==arr[mid]){ return mid }
阅读全文
Promise.all的实现
摘要:Promise.all的简单实现 Promise.all = arr => { let aResult = []; //用于存放每次执行后返回结果 return new _Promise(function (resolve, reject) { let i = 0; next(); // 开始逐次执
阅读全文
如何让(a==1&&a==2&&a==3)成立
摘要:原文链接:https://www.jianshu.com/p/b7831b06f61a 上班摸鱼的时候,刷到了一篇很有意思的文章,可以先看看上面的链接; 对于我这种小白来说,这种判断条件,似乎,好像,可能,大概不成立吧。然后我仔细看了看(第一种方法), 第一遍,嗯?这是什么操作??? 第二遍,哦!原
阅读全文
for in,for of, for,forEach,map的区别
摘要:最近一直有在面试,各种准备,博客,慕课网都成了常客,看了那么久那么认真,都把自己给感动了,然而呢,一道题几家公司几家问,知道就是说不出来,网上一看很多,说的也很对,看完是懂了,但是没有自己去整理去记忆,还是会被一次次问的语无伦次,所以就从这篇开始吧。 这道题有两家公司都有问到,表现的都不理想,从一开
阅读全文
promise 中的错误处理
摘要:js 中的错误处理. 分为三块吧. 第一:普通的js中 错误处理. 第二: promise 中的错误处理 第三: async 中的错误处理 第一: 普通的js 的错误处理 说普通是因为比较简单,算一个知识点没有太多啥说的,大家找找资料比较齐全 https://www.sitepoint.com/ex
阅读全文