首页 > 代码库 > 汤姆大叔的博客-编程正例
汤姆大叔的博客-编程正例
例如避免全局变量,使用单变量声明,在循环中预缓存length(长度),遵循代码阅读
全局变量描述:
1.a是本地变量 ,但是b确实全局变量
2.JavaScript有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性(反例)
3.区别:
通过var创建的全局变量(任何函数之外的程序中创建)是不能被删除的。
无var创建的隐式全局变量(无视是否在函数中创建)是能被删除的。
var myglobal = "hello"; // 不推荐写法
console.log(myglobal); // "hello"
console.log(window.myglobal); // "hello"
console.log(window["myglobal"]); // "hello"
console.log(this.myglobal); // "hello"
console.log(this);
console.log(window);
结论:全局 = 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;
}
汤姆大叔的博客-编程正例