/*
* 易錯基礎題:js中三類迴圈對比及效能分析?
* + for迴圈及foreach底層原理
* for迴圈是自己控制迴圈過程
* q1:基於var宣告的時候,for和while效能差不多「不確定迴圈次數的情況下使用while」
* q2:基於let宣告的時候,for迴圈效能更好「原理:沒有創造全域性不釋放的變數」
* q3:重寫for-each
* + for in迴圈的bug及解決方案
* q1:迭代所有可列舉屬性「私有&公有」,按照原型鏈一級級查詢很耗效能
* q2:問題很多:不能迭代symbol屬性、迭代順序會以數字屬性優先、公有可列舉的屬性也會進行迭代
* + for of迴圈的底層機制
* q1:迭代器iterator規範「具備next方法,每次執行返回乙個物件,具備 value/done 屬性」
* q2:讓物件具備可迭代性並且使用for of迴圈
*/let arr =
newarray
(9999999).
fill(0
);// console.time('for~~');
// for (let i = 0; i < arr.length; i++) {}
// console.timeend('for~~');
// console.time('while~~');
// let i = 0;
// while (i < arr.length)
// console.timeend('while~~');
/* array.prototype.foreach = function foreach(callback, context)
};*/
// console.time('foreach~~');
// arr.foreach(function (item) {});
// console.timeend('foreach~~');
// for in效能很差:迭代當前物件中所有可列舉的屬性的「私有屬性大部分是可列舉的,公有屬性也有部分是可列舉的」 查詢機制上一定會搞到原型鏈上去
// console.time('for in~~');
// for (let key in arr) {}
// console.timeend('for in~~');
// 問題一:遍歷順序以數字有先
// 問題二:無法遍歷symbol屬性
// 問題三:可以遍歷到公有中可列舉的
/* object.prototype.fn = function fn() {};
let obj = ;
// for (let key in obj)
let keys = object.keys(obj);
if (typeof symbol !== "undefined") keys = keys.concat(object.getownpropertysymbols(obj));
keys.foreach(key => );
*/// iterator 迭代器
// 部分資料結構實現了迭代器規範
// + symbol.iterator
// + 陣列/部分類陣列/set/map...「物件沒有實現」
// for of迴圈的原理是按照迭代器規範遍歷的
/* arr = [10, 20, 30];
arr[symbol.iterator] = function () ;
}return ;}};
}; */
// 1.let itor=arr[symbol.iterator]();
// 2.itor.next()
// ...
// console.time('for of~~');
// for (const val of arr)
// console.timeend('for of~~');
/* // 類陣列物件「預設不具備迭代器規範」
let obj = ;
obj[symbol.iterator] = array.prototype[symbol.iterator];
for (let val of obj) */
C 中三類Timer的比較
最近在做乙個leapmotion的作業,由於自帶的listener對的frame重新整理識別速度太快,所以需要實現乙個功能 每隔一段時間 自己定義 來呼叫識別新的frame的函式。其實有乙個invoke 的方法可以實現這種功能,但是自己用不好,裡面的引數讓人頭疼。實現這種功能的方法肯定有很多種,我最...
關係模型中三類完整性約束以及解釋
1 實體完整性 所謂的實體完整性就是指關係 所謂的關係就是表 的主碼不能取空值 比如學生表的主碼通常是取學號為主碼 2 參照完整性 是指參照關係中每個元素的外碼要麼為空 null 要麼等於被參照關係中某個元素的主碼 比如今天是9月2日是開學日,大學新生剛來報道,在學生表裡,有的學生可能還沒來得及分配...
關係的三類完整性約束
規則2.1實體完整性規則 entity integrity 若屬性a是基本關係r的主屬性,則屬性a不能取空值 空值就是 不知道 或 不存在 或 無意義 的值 例 選修 學號,課程號,成績 學號 課程號 為主碼 學號 和 課程號 兩個屬性都不能取空值 實體完整性規則的說明 1 實體完整性規則是針對基本...