1. 屬性描述符web
描述屬性的屬性數組
writable 決定屬性是否能夠寫入(是不是一個只讀屬性)函數
enumerable 決定屬性是否能夠for in枚舉(遍歷)post
configurable 決定屬性是否能夠從新配置或者刪除es5
2. 訪問描述符spa
get 屬性獲取時調用的方法prototype
set 屬性設置時調用的方法線程
使用:code
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 用來聲明變量的關鍵字
JSON 方法
Object 擴展
Array 擴展
findIndex
map 加工處理數組的每一項值
filter 過濾數組中不須要的值
reduce 統計、求和
Funtion 擴展