“完美世界”面经

今天面了完美世界的web前端岗,废话不多说,直接记录一下今天的面经。
JS问题
1: 一般引入script文件在页面的哪个地方引入?
回答:一般在的最底部引入,在中引入可能会引起js阻塞加载的问题。

2: 当要删除数组中的某个元素,如何进行删除?
回答:知道它的索引吗?若是知道其索引,直接使用js的方法,array.splice(i, 1); //即可删除索引为i的元素。

3:说一下你对闭包的了解?
回答:闭包是指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式,就是在一个函数的内部创建另一个函数。(感觉这个题回答的不怎么样,也扯到了一些闭包会引起内存泄漏等,balabala)

4: 说一下你用过的一些ES6的东西?
回答:(1)let、const。let解决了js中没有块作用域的问题;const解决了全局变量的问题。(2)class类解决了js中继承比较复杂,比较难维护的问题。(3)extends 实现了js中的继承,使代码更易于理解。(4)箭头函数 举例说明箭头函数的使用方法,你是如何使用的。(5)promise函数 解决了js中的回调地狱的问题,举例说明你在你是如何具体使用的。

5: 写代码实现js的继承,解释其继承机制。

  //自己胡乱举了个例子写的
  function Person(name, age){
      this.name = name;
      this.age = age;
  }
  Person.prototype.sayHello = function(){
      console.log("hello!!");
  }

  function Stu(name, age){
      this.name = name;
      this.age = age;
  }

Stu.prototype = new Person(); //实现了继承

6: 出了4道回答运行输出的问题。主要考察this的指向和变量作用域的问题。

7: 知道深拷贝和浅拷贝问题吗?如何进行深拷贝?
回答:如果只是单纯的浅拷贝,对于引用类型的变量来说,很可能被几个对象同时操作,造成预期之外的结果。所以,对于数组和对象的拷贝应该使用深拷贝。

  //深拷贝代码
  function Copy(obj){
      var result;
      if(obj instanceof Array){
          result = [];
          var i = obj.length;
          while(i--){
              result[i] = Copy(obj[i]);
          }
          return result;
      }else if(obj instanceof Object){
          result = {};
          for(var t in obj){
              result[t] = Copy(obj[t]);
          }
          return result;
     }else{
          return obj;
    }
  }

CSS问题
1: 解释一下盒模型?
回答: 分为w3c盒模型和IE的盒模型,IE盒模型中的width是包含content+padding+border的 balabala。不知道面试官的下一问是问的如何实现兼容,还是如何实现选择??。(面试官说回答的有误差)
最后说有个属性,应该是考察CSS3的“box-sizing”属性会给开发者选择盒模型解析方式的权利。

2: 对列表的理解(ul li ol等)
话说,ol是有序的(order)

//有序列表  
  
  1. c语言
  2. c++
//无序列表
  • 苹果
//自定义列表
计算机
计算机是用来计算的
显示器
显示器是用来视觉显示的。。。

3: position的取值?
回答:常用的有 relative、absolute、fixed、static。
说一下它们各自定位的标准吗?大体是

4: 对float的理解?

5:一些简单的标签的用法(p、ul、li)等

非技术类
1: 为什么选择前端?
2: 英语水平怎么样?平时会使用百度吗?会看stack overflow吗?电脑翻墙了吗?
3:面对压力的时候怎么办?
4:你做的那个XXX项目是什么?
5:有什么问题要问他?
还有一些比较小的细节了 差不多就这些了。感觉面的都还是比较基础的。算是准备到一些。

你可能感兴趣的:(“完美世界”面经)