1.JavaScript 中的垃圾回收机制
定义:指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束。
JavaScript在创建对象时会为它们分配内存,不再使用时会自动释放内存,这个过程称为垃圾收集。
四种常见的内存泄漏:
- 全局变量 不用var声明的变量,相当于挂载到window对象上,解决:使用严格模式
- 未清除的定时器
- 闭包
- dom的引用:没有清理的dom元素引用
2.跨域解决方案
- (后端)服务器配置CORS(跨域资源共享)
- (后端)node.js或Nginx反向代理,把跨域改造成同域
- (前端)将JSON升级为JSONP在JSON基础上,利用
3.事件传播的三个阶段
捕获 > 目标 > 冒泡
在捕获阶段,事件通过父元素向下传递到目标元素
然后到达目标元素,冒泡开始
4.JavaScript中作用域是指什么?
在JavaScript中,每个函数都有自己的作用域。
作用域基本上是变量以及如何通过名称访问这些变量的规则的集合。
只有函数汇总的代码才能访问函数作用域内的变量。
在同一个作用域中的变量名必须是唯一的。一个作用域可以嵌套在另一个作用域内。如果一个作用域嵌套在另一个作用域内,最内部作用域的代码可以访问另一个作用域的变量。
5.JavaScript中的null和undefined
- null 表示一个空的对象,什么也没有
- undefined 表示声明未赋值
- undefined 是从null派生出来的
null == undefined // true
null === undefined // false
typeof(null) // object
typeof(undefined) // undefined