深圳市番趣互动娱乐有限公司(套题)

深圳市 2018-08-04 202
选择题 填空题 问答题 编程题 试题难度
0 0 8 0 比较难
试题信息收集不易,转发请带上出处,不甚感谢!如果您对任何编程问题还有疑问,欢迎点击下方按钮向老师提问!
问答题
  • 1、如何判断一个变量是Array类型?(不止一种)
  • 考察js的基本功是否扎实

    1.使用es5提供的方法, Array.isArray(),true表示数组

    2. 使用instanceof ,例如 :array instanceof Array。true表示数组

    3.使用toString()方法调用call或apply方法,Object.prototype.toString.call(array)==="[object Array]"


  • 2、解释一下DOM事件流的三个阶段。
  • 前端面试,这种问题不是经常问,如果是面试中高级的岗位,会问。

    答:事件流的三个阶段分别是 捕获、目标、冒泡

    捕获:从Document节点开始,从上到下传播到目标节点为止。

    目标:执行事件处理程序

    冒泡:从目标节点逐步传播到根节点。

  • 3、对下面的数组和对象进行深拷贝(深复制)
    let list=[1,2,3,4],obj={name:'小明',age:18};
  • 考察对值类型和引用的理解

    方法1(直观的方法):

    var list2=[],obj2={};

    for(var i=0;i<list.length;i++){

      list2.push(list[i]);

    }

    for(var key in obj){

    obj2[key]=obj[key];

    }

    方法2(json转字符串,字符串转json)

    var list2=JSON.stringify(list);

    var obj2=JSON.stringify(obj);

    var jsonList=JSON.parse(list2);

    var jsonObj=JSON.parse(obj2);


    方法3

     var list2=list.toString().split(",");

    var obj2=Object.assign({},obj);


  • 4、对以下数组进行去重
    let ary=[1,2,3,3,4,4,4,5];
  • 这种题目看似很简单,其实有陷阱。要考虑性能最佳。

    方法(一)

    let ary=[1,2,3,3,4,4,4,5];

    var obj={};

    var newArray=[];//判断是否重复

    var len=ary.length;

    for(var i=0;i<len;i++){

    var key=ary[i];

      if(!obj[key+""]){

    newArray.push(key);

    obj[key+""]=true;

      } 

    }

    思路将数组中的元素变为对象的key,每次比较与对象的key做比较(查找key是非常快的),如果有就不加到新数组否则加上,这样就快速的做到了去重的目的。


    方法(二)

    let ary=[1,2,3,3,4,4,4,5];

    var set=new Set([1,2,3,3,4,4,4,5])

    使用es6提供的Set对象,效率是最高的。




  • 5、Vue中计算属性、组件、数据监听等等分别是Vue生命周期什么时候挂上去。实现的原理是什么?
  • 面试高级前端开发人员会问这样的题目

    都是在created这个阶段挂载上去的。从源码来看确切的说是在beforeCreate和ctreated之间创建的。从vue.js2.0源码上看,在这两个方法中间调用了initState()方法,这个方法就是用来创建这些对象信息的。


    点评这个不作为回答的内容,很多面试官总喜欢拿原理装高逼格,你可不要被他吓唬到咯,这道题你说你看了vue.js源码就是一个很有力的回击。不要去回答他的什么原理,因为这个问题本身就有问题,这里就是执行顺序的问题,哪有那么多原理。这种问题就等于1+1为什么等于2,你给我说说原理那么扯淡。你让他回答估计也是答非所问。

  • 6、常见的http状态码有哪些?
  • 200 已成功处理了请求。

    304 请求的网页未修改过。

    401 请求要求身份验证。

    403 拒绝请求

    404 找不到请求的网页。

    500 服务器错误

  • 7、一个页面半天加载不出来。你分析下原理?怎么优化?怎么解决?
  • 考察是否有一定的项目开发经验,是否有考虑过性能的问题


    答:遇到这种情况, 我一般会通过开发者工具,查看网络请求的情况,是不是因为请求的时间较长,如果接口请求时间长,基本上确定是后台的原因。

    如果网络正常,我就会调试跟踪代码是不是有死循环,或是代码执行的次数比较多导致的。如果是代码问题就可以采用按需加载、分页加载、缓存、优化算法等方式来解决。


  • 8、说下你对缓存的理解,你们怎么处理使用的?
  • 答:前端的缓存技术主要有

    cookie 存储大小4KB左右,可以指定一个过期的时间,cookie会往返服务器的请求

    localStoreage 能永久存储数据,需要手工删除数据。最大存储约为5MB,IE8以上的浏览器才支持。

    sessionStoreage 临时会话存储,关闭页面后自动删除

    离线缓存技术 通过manifest文件描述需要缓存的文件


还能输入{{limitInput-companyComment.length}}个字符