1. 属性描述符
描述属性的属性
writable 决定属性是否可以写入(是否是一个只读属性)
enumerable 决定属性是否可以for in枚举(遍历)
configurable 决定属性是否可以重新配置或者删除
2. 访问描述符
get 属性获取时调用的方法
set 属性设置时调用的方法
使用:
Object.defineProperty(对象, 属性名, {value: xxx})
Object.defineProperties(对象, {属性名: {value: xxx}})
删除属性 delete xxx
密封对象 Object.seal(对象);
- 不可以添加新属性
- 不可以删除
- 可以读写操作
冻结对象 Object.freeze(对象);
- 只能读
- 不能写入、删除、添加操作
深度冻结:
-
function deepFreeze(obj) { if (typeof obj !== 'object')return; //默认情况下,先给第一层冻结 Object.freeze(obj); //遍历对象 for (var key in obj) { //获取属性值 var value = obj[key]; deepFreeze(value); } }
3. web workers
H5 规范提供的 js 分线程的实现
Worker: 构造函数, 加载分线程执行的js文件
Worker.prototype.onmessage : 用于接收另一个线程的回调函数
Worker.prototype.postMessage : 向另一个线程发送消息
使用场景:一般大量计算的任务会交给分线程完成
4. es5 扩展的内容
严格模式
let 和 const 用来声明变量的关键字
- 在块作用域内有效
- 不能重复声明
- 不会预处理, 不存在提升
- const定义的变量不能修改
JSON 方法
Object 扩展
Array 扩展
findIndex
map 加工处理数组的每一项值
filter 过滤数组中不需要的值
reduce 统计、求和
Funtion 扩展