js 面试相关
Posted 茴香
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 面试相关相关的知识,希望对你有一定的参考价值。
定义变量的方式
ES5 有俩种:
var 和function
ES6有6种
增加四种:let、const、import、 class。
注意:let、 const 、class 声明的全局变量再也不会和全局对象的属性挂钩
闭包
闭包就是能读取其他函数内部变量的函数。
- 优点:避免全局变量的污染。希望一个变量长期储存再内存中(缓存变量)
- 缺点:内存泄露(消耗),常驻内存,增加内存使用量
DOM事件有哪些阶段
- 三大阶段:捕获阶段、目标阶段、冒泡阶段
- 简单来说:事件不直接绑定到某元素上,而是绑定到该元素的父元素上,进行触发事件操作时,再通过条件判断,执行事件触发后的语句
- 好处:代码更简洁、节约内存开销
javascript的垃圾回收机制
- javascript在创建对象(对象、字符串等)时会为他们分配内存,不再使用时会“自动”释放内存,这个过程称为垃圾收集。
内存生命周期中的每个阶段:
- 分配内存:内存是由操作系统自动分配的,它允许您的程序使用。
- 使用内存:这是一个程序实际使用之前分配的内存,在代码中使用分配的变量时,就会发生读和写的操作。
- 释放内存:释放所有不再使用的内存,使之成为自由内存,并可以被重复利用。与分配内存操作一样,这一操作在低级语言中,也需要显式执行。
四种常见的内存泄露:全局变量,未清除的定时器,闭包,以及dom的引用
- 全局变量:不用var 声明的全局变量,相当于挂载到window对象上,如:b=2;解决:使用严格模式
- 被遗忘的定时器和回调函数
- 闭包
- 没有清理的DOM元素引用
前端性能优化常用方法
- 减少请求数量
- 减小资源大小
- 优化网络连接
- 优化资源加载
- 减少重绘回流
- 使用性能更好的API
- 借助webpack等工具压缩优化
以上是关于js 面试相关的主要内容,如果未能解决你的问题,请参考以下文章
JS万字整理JavaScript相关基础技术面试题总结 - 前端面试必备 - 基础知识总结 - 秋招冲鸭