个人资料

面试总结

  • 未来科技
  • 国人在线【外包】

    • 做的是笔试题
    • 本地存储有哪些解决方案

        var User = {
            count:1,
            getCount:function(){
                return this.count
            }
        }
        console.log(User.getCount())//1
        var fun = User.getCount
        console.log(func())//undefined
    • 闭包是什么,有什么特性,对页面有什么影响
    • IE和标准有哪些兼容性写法

          setTimeout(function(){
              console.log(1)
          })
          new Promise(function(resolve,reject){
              console.log(2)
              resolve(3)
          }).then((val){
              console.log(val)
          })
          //输出的顺讯 231
    • 什么叫对象的拷贝
    • 什么是深拷贝,什么是浅拷贝
    • 做过哪些性能优化
    • 说一下tcp三次握手的原理
    • tcp属于哪一层
    • Promise的三个缺点

          function Foo(){
              getName = function(){
                  console.log(1)
              }
              return this
          }
          Foo.getName = function(){
              console.log(2)
          }
          Foo.prototype.getName = function(){
              console.log(3)
          }
          var getName = function(){
              console.log(4)
          }
          function getName(){
              console.log(5)
          }
          //请写出以下的输出结果
          Foo.getName()
          getName()
          Foo().getName()
          getName()
          new Foo.getName()
          new Foo().getName()
          new new Foo().getName()
    • transform动画,使用left,top改变位置的优缺点
    • Es6的Map和原生的对象有什么区别

          //把一个数组arr按照指定的数组大小size分割成若干个数组块
          document.write(chunk([1,2,3,4,48,666],2))
          //输出的结果[1,2],[3,4],[48,666]
          //chunk()方法   
          
           function getArr(arr,size){
        //arr [1,2,3,4,48,666]
        //size 2
        //slice
        // var flag = arr.slice(0,size)
        var newArr = []
        for(var i = 0;i<arr.length/size;i++){
            flag = arr.slice(size*i,size*i+size)
            newArr.push(flag)
        }
      
        return newArr
      }
          //一个大数组中包含了4个小数组,分别找到每个小数组中的最大值,然后把他们串联起来,形成一个新的数组
          数组为:[[165,2,9],[48,6,9,82],[6,5],[29658,91,2]]
          
          function getArr(arr) {
            var flag = []
            for(var i = 0 ;i<arr.length;i++){
                arr[i].sort((a,b)=>{return a - b })//升序
                flag.push(arr[i][arr[i].length - 1])
            }
            return flag
         }
          
          //编写一个阶乘
       //翻转字符串"hello world!",写一个函数,翻转上面的字符串变成 "!dlrow olleh"
        //hello world!
        function reverse(str){
            var arr = str.split("").reverse().join("")
            return arr
        }
      
            //冒泡排序
            function sort(arr){
                for(var i = 0;i<arr.length - 1;i++){
                    for(var j = 0;j<arr.length -1 -i;j++){
                        if(arr[j] > arr[j+1]){
                            var temp = arr[j]
                            arr[j] = arr[j+1]
                            arr[j+1] = temp
                        }
                    }
                }
                return arr
            }
  • 博彦科技【外包】
    #### 电话面试

    • 浏览器的兼容性
    • 定时器的种类
    • Vue的响应式原理
    • Es6的新特性
    • 工作中有没有碰到过内存泄漏的问题

arrowfield
0 声望0 粉丝

本人一名在读大学生,对前端开发很感兴趣,想将自己的前端知识经验与大家分享,希望大家多提意见!