用了十几天刷了100多道各大公司的前端笔试题,算了算正确率大概有63%,不会的题目主要卡在算法、模型抽象以及一些js特性上面。而且做出来的题目比正确答案也要啰嗦的多,还有就是阿里那种既限制代码行数又限制内存大小的题,几乎全崩,备受打击。尽管如此,基础还是提高了不少,刷笔试题是个打基础的好方法。也越发觉得js真是博大精深,变化无穷。学会容易,学精难,能用出花样来更是难上加难。
关于闭包,我的经验来自于之前手写node路由器,所以解这类题都会有之前的影子,习惯建一个策略集来缓存,但这个最佳答案给了我们一个用参数存储值的新思路
题目:+1s 程序(闭包)replace函数可以接受正则和函数作为参数,函数的引入简直可以对字符串为所欲为
题目:转换驼峰命名(match与replace)在一个对象A中调用另一个对象B的中的函数,此时函数的this指向并不是B,而是对象A,我们需要用apply函数进行作用域转换,这在类的继承中显得尤为重要,这也是super关键字的来历
题目:间谍活动(apply的运用)
因为看面试官会经常问Vue原理,所以就找来Vue源码来读,三天之后在绝望中放弃,然后决定自己写一个最简单的MVVM函数,虽然简陋,但这两个demo写完,已经大概理解了vue原理
题目:一个简易的MVVM函数实现
MVVM 当中如何监听数组变化链式调用的关键在于每次返回函数的引用,而不定参数函数的处理方法在于利用函数的隐式转换,每次使用toString()返回函数的值
题目:函数柯里化与不定参数处理解这道题我的代码写了一百多行,而且bug层出不穷,改到崩溃,而大神只用了四行就解决了问题,看来有时候了解一个特殊用法真的能提升数百倍的效率。
题目:执行任意表达式的exec函数关于浅拷贝、深拷贝和对象引用
题目:queryString 分析器通过重新定义next和callback方法,生成等待队列来模拟中间件的实现
题目:发车函数(callback取值)
题目:中间件模式我一直习惯将字符串变成数组后处理,但是有时候用replace、match、padStart、padEnd等函数直接处理字符串要比转成数组要简单得多。
字符串补全长度(padStart)