最近一个月投了好几个简历,只有一家过了初筛,拿到了面试机会,年末找实习好难啊。
今天赶高铁过去面试,到了目标城市准备恰个中饭,顺便查了下高德,看看可以有多少时间恰午饭。一算时间,只有半个小时给我了,吓得我光速点完中饭,胃口也跌了点,吃的还剩1/5就吃不下了。赶去的路上还因为着急,走错了路,我真是一个看地图鬼才。但是!到目的地的时候,居然还剩下40分钟...emmm高德地图呕呕呕(猫猫呕吐.jpg)
面试前,先让我做了一下笔试,笔试题中,我比较在意的是这几道题(因为不会)
1. 使用js检测一个字符串中出现次数最多的字符
答案:
const str = "aaaaasdffgacaabbrtbbrr"; // 用于存储每个字符的重复次数 const oChar = {} for(let i=0; i < str.length; i++) { if(!oChar[str.charAt(i)]) { oChar[str.charAt(i)] = 0 } oChar[str.charAt(i)] += 1 } // 用于存储最大的字符 let mostChar; // 用于存储重复最多的字符的重复次数 let maxMostCharSize=0; for (let key in oChar) { if (oChar[key] > maxMostCharSize) { mostChar = key; maxMostCharSize = oChar[key] } } console.log(mostChar)
当时回答:先使用字符串的分割方法,然后for循环返回的数组,统计数组中同一字符出现的次数
2. 以下代码会打印出啥
var a = 0; function m1(){ console.log(a) } function m2() { var a = 1; console.log(b); var b = 5; console.log(b) m1() console.log(a) } m1() m2()
答案:0,undefined,5,0,1
当时回答:0,undefined,5,1,1。m1不会使用m2函数中的变量a是因为m1不是在m2中定义的?
3. 以下代码为什么会在打印出undefined
<script> console.log(typeof aa) </script> <script> function aa() { console.log(‘b‘) } </script>
答案:在两个script中,下面的script标签的函数不会提升到上面的script标签中
当时回答:不知道,猜测是两个script标签的问题
4. promise中设置一个settimeout(()=>{},0),在其后设置一个settimeout(()=>{},0),哪个先执行
答案:promise的先执行,因为promise写在上面,所以它先进入消息队列,按照队列的先进先出原则,当然是promise中的settimeout先执行
当时回答:写在上面的先执行,不过面试官诧异的表情让我十分怀疑自己理解错了Promise...回来做了下测试,结果是我所说的这个啊,也许是我把题目听错了吧
5. 使用正则检测一个手机号
答案:今天太晚了明天写
当时回答:不熟悉正则,不过可以使用Number(input.value)+input.value.length来判断是不是数字
原文:https://www.cnblogs.com/FreezeNow/p/12127858.html