美文网首页
2018年遇到的一些前端面试题

2018年遇到的一些前端面试题

作者: 白羊座的黄同学 | 来源:发表于2018-11-24 13:00 被阅读0次

    巅峰时期,一下午面了3家。虽然是带着去试水的心态,但是3轮技术面下来人确实是头昏脑涨,感觉身体被掏空。。。
    首先给大家提醒一下,厉害的面试官是根据你简历上的内容来考查你的知识体系和技术栈,各位看官千万不要在简历上吹得太厉害了。不然受伤的总会是自己~,话不多说,上题:
    1.做一个计算器功能。要求:可以连续计算,如输入1+2*3这种算式;每次刷新时候数字键1到9重新排列;有删除和退格键;类似这个样子的:



    PS:小看了这道题,跟面试官夸下海口30分完成,然后灰溜溜的用了50分钟
    解析:
    ①编写布局。。。随意
    ②数字乱序使用费雪耶兹随机置乱算法

    var arr=[0,1,2,3,4,5,6,7,8,9];
    //费雪耶兹随机置乱算法
    (function(arr) {
      let i = arr.length;
      while (i) {
         let j = Math.floor(Math.random() * i--);
         [arr[j], arr[i]] = [arr[i], arr[j]];
       }
     })(arr);
    

    ③用代理注册按键的点击事件。活用event.target
    ④验证计算试是否合法!!!(正则计算)
    ⑤根据计算式计算结果。我是将表达式拆分为两个数组,一个数组是要计算的数字,一个数组是符号。根据符号数组,先计算乘除取余,再计算加减

    2.写一个方法,可接受任意参数。但是必须讲传入的NaN,undefined,null判断出来。
    记得区分‘NaN’,‘undefined’,‘null’这几个字符串

    function checkType(obj){
            if(typeof(obj)==='undefined'){
              console.log('obj是undefined');
            }
            if(Number.isNaN(obj)){
              console.log('obj是NaN');
            }
            if (!obj && typeof(obj)!="undefined" && obj!==0){
              console.log('obj是null');
            }
        }
    

    相关文章

      网友评论

          本文标题:2018年遇到的一些前端面试题

          本文链接:https://www.haomeiwen.com/subject/rsoeqqtx.html