- XSS 跨站脚本攻击 && CSRF 跨站请求伪造
- 树的遍历(递归算法和特点)
- 前序遍历
- 中序遍历
- 后序遍历
- 事件代理和委托
- cookie 设置
- Web Storage(sessionStorage and localStorage)
- canvas
- 查找算法及时间复杂度
- 排序算法及时间复杂度
- js正则(多行匹配下$ ^ 匹配的是一行,不是整个文本)
- js基本类型和引用类型,函数参数传递(按值传递),变量复制;
- typeof 和 instanceof
- instanceof 可以用来检测对象是否为 Object、Array、RegExp
- 注意 instanceof操作符检测类型是 constructor,而typeof检测的是 字符串;
- 执行环境(execution context)和 作用域
- 每个执行环境都有一个与之关联的变量对象(variable object),环境中定义的所有变量和函数都保存在这个对象中。虽然我们编写的代码无法访问这个对象,但解析器在处理数据时会在后台使用它。(变量和函数提升有关)
- 当代码在一个环境中执行时,会创建变量对象的一个作用域链(scope chain)。作用域链的用途,是保证对执行环境有权访问的所有变量和函数的有序访问。
- 使用with语句延长作用域链.
- 全局执行环境和函数执行环境
- ES5没有块级作用域,只有函数作用域;
- 垃圾收集
- 自动的垃圾收集机制
- 标记清除
- 是目前主流的垃圾收集算法,这种算法的思想是给当前不使用的值加上标记,然后再回收其内存。
- 当变量进入环境(例如,在函数中声明一个变量)时,就将这个变量标记为“进入环境”。而当变量离开环境时,则将其标记为“离开环境”。
- 垃圾收集器在运行的时候会给存储在内存中的所有变量都加上标记。然后,它会去掉环境中的变量以及被环境中的变量引用的变量的标记。而在此之后再被加上标记的变量将被视为准备删除的变量
- 引用计数
- 跟踪记录每个值被引用的次数。当声明了一个变量并将一个引用类型值赋给该变量时,则这个值的引用次数就是 1。如果同一个值又被赋给另一个变量,则该值的引用次数加 1。相反,如果包含对这个值引用的变量又取得了另外一个值,则这个值的引用次数减 1。当这个值的引用次数变成 0 时,则说明没有办法再访问这个值了,因而就可以将其占用的内存空间回收回来。
- 存在
循环引用
问题
- 内存限制问题,手动解除引用
- DOM操作:元素的方法
- 字符串、正则、数组的操作方法