高效率JS代码锦集
例如避免全局变量,使用单变量声明,在循环中预缓存length(长度),遵循代码阅读
全局变量描述:
1.a是本地变量 ,但是b确实全局变量
2.JavaScript有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性(反例)
3.区别:
通过var创建的全局变量(任何函数之外的程序中创建)是不能被删除的。
无var创建的隐式全局变量(无视是否在函数中创建)是能被删除的。
结论:全局 = window
this 可变
单变量声明描述
您可以使用一个var语句声明多个变量,并以逗号分隔
这就是为什么当你循环获取值时,缓存数组(或集合)的长度是比较好的形式
// 次佳的循环 for (var i = 0; i < myarray.length; i++) { // 使用myarray[i]做点什么 } for(var i=0;length = arr.length;i<length;i++){ // arr[i] } // for-in 循环 for (var i in man) { if (man.hasOwnProperty(i)) { // 过滤 console.log(i, ":", man[i]); } } for (var i in man) { if (Object.prototype.hasOwnProperty.call(man, i)) { // 过滤 console.log(i, ":", man[i]); } }
遵循代码阅读
// 宽松一致的间距 // 使代码更易读 // 使得更加“透气” var d = 0, a = b + 1; if (a && b && c) { d = a % c; a += d; }