【IMWeb秋招训练营】【Day4】面试题总结

经典面试题

13.null和undefined的区别?
  1. undefined判断的是变量的类型,null和NaN判断的是变量的值。
  2. undefined可以用来表示以下的状况
  • 表示一个未声明的变量
  • 已声明但没有赋值的变量
  • 一个并不存在的对象属性
  1. null 是一种特殊的object ,表示无值;
  2. NaN是一种特殊的number ,表示无值;
14 .new操作符具体干了什么呢?

对于如下代码:

var fn = function () {};
var fnObj = new fn();

new做了四件事情。

  1. 创建了一个空对象
var obj = new object();
  1. 设置原型链
obj._proto_ = fn.prototype;
  1. 让fn的this指向obj,并执行fn的函数体
var result = fn.call(obj);
  1. 判断fn的返回值类型,如果是值类型,返回obj。如果是引用类型,就返回这个引用类型的对象。
if (typeof(result) == "object"){  
    fnObj = result;  
} else {  
    fnObj = obj;
}  
15 .哪些操作会造成内存泄漏?
  1. 函数中的局部变量
  • 标记清除
  • 引用计数
  1. 全局变量
  • 解除引用
  1. 闭包
  2. 事件处理程序
  • 事件委托
  • 手工移除
16.对Node的优点和缺点提出了自己的看法?

优点

  1. 采用事件驱动、异步编程,为网络服务而设计。其实Javascript的匿名函数和闭包特性非常适合事件驱动、异步编程。而且JavaScript也简单易学,很多前端设计人员可以很快上手做后端设计。
  2. Node.js非阻塞模式的IO处理给Node.js带来在相对低系统资源耗用下的高性能与出众的负载能力,非常适合用作依赖其它IO资源的中间层服务。3. Node.js轻量高效,可以认为是数据密集型分布式部署环境下的实时应用系统的完美解决方案。Node非常适合如下情况:在响应客户端之前,您预计可能有很高的流量,但所需的服务器端逻辑和处理不一定很多。

缺点

  1. 可靠性低
  2. 单进程,单线程,只支持单核CPU,不能充分的利用多核CPU服务器。一旦这个进程崩掉,那么整个web服务就崩掉了。

来源:https://www.zhihu.com/question/19653241/answer/15993549

思考题

7.时至今日前端canvas还是否有深入学习的必要?

个人意见:

  1. 了解常见API,会用
  2. 深入了解其背后机制。API会过时,思路却不会。

传送门:https://www.zhihu.com/question/59197508

8.你如何对网站的文件和资源进行优化?
  1. 文件合并(目的是减少http请求)

  2. 文件压缩(目的是直接减少文件下载的体积)

  3. 使用cdn托管资源

  4. 使用缓存

  5. gizp压缩你的js和css文件

  6. meta标签优化(title,description,keywords)、heading标签的优化、alt优化

  7. 反向链接,网站外链接优化

你可能感兴趣的:(【IMWeb秋招训练营】【Day4】面试题总结)