常见技术问题及答案(一)

一、用CSS实现右边宽度固定,左边自适应

二、介绍一下webpack和gulp,以及项目中具体的使用

gulp:是工具链、构建工具,可以配合各种插件做js压缩,css压缩,less编译 替代手工实现自动化工作

(1)构建工具

(2)自动化

(3)用于:提高效率——能够优化前端工作流程,提高工作效率

(4)自动刷新页面,雪碧图,压缩css、js,编译less,检查语法等

(5)使用gulp可以配置你需要的插件,把以前需要手工做的事情让它帮你做了

webpack:是文件打包工具,可以把项目的各种js文、css文件等打包合并成一个或多个文件,主要用于模块化方案,预编译模块的方案

(1)打包工具

(2)模块化识别

(3)用于:编译模块代码方案

总结:两者不是一个工具,不具有可比性,更不冲突

三、父子两元素同时绑定2个click事件,一个在冒泡阶段执行,一个在捕获阶段执行,执行的顺序是什么?

w3c规定了,任何发生在w3c事件模型中的事件,首是进入捕获阶段,直到达到目标元素,再进入冒泡阶段。addEventListener里面说了,false是默认的,表示的就是冒泡。捕获是从大到小,冒泡是从小到大。

绑定在被点击元素的事件是按照代码的顺序发生的,其他非绑定的元素则是通过冒泡或者捕获的触发。按照W3C的标准,先发生捕获事件,后发生冒泡事件。所以事件的整体顺序是:非目标元素捕获 -> 目标元素代码顺序 -> 非目标元素冒泡。

四、对Node的优点和缺点有什么自己的看法?

优点:

   1. 采用事件驱动,异步编程,为网络服务而设计。

   2. node.js非阻塞模式的IO处理给node.js带来在相对较低的资源耗用下的高性能与出众的负载能力。

   3. node.js轻量高效,可以认为是数据密集型实时应用系统的完美解决方案。

   4. js语言适合前端工程师上手。

   5. 社区活跃发展速度快。

缺点:

   1. 单线程,单进程,只支持单核CPU,不能充分的利用多核CPU服务器。

   2. 对程序员要求高一旦进程崩溃,那么整个web服务器就崩溃了。

   3. 不适合做复杂性很高的计算。

五、哪些操作会造成内存泄露?

内存泄漏:指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束。

(1)JS的回收机制

(2)标记清除

function test(){

var a=10;//被标记,进入环境

var b=20;//被标记,进入环境

}

test();//执行完毕之后a、b又被标记离开环境,被回收

(3)意外的全局变量引起的内存泄露

(4)闭包引起的内存泄露

你可能感兴趣的:(常见技术问题及答案(一))