全局变量
尽量不要使用javascript中的全局变量,因为
1.全局变量生命周期长,长期占用内存。
2.js代码可移值性不强,如果出现重名变量,前面的变量将被后面变量覆盖,使用前面变量的脚本出现问题。
在function中不用var修饰的变量为全局变量,例如:
function hello()
{
alert(aa);
}
此表达式由右向左解析,b为全局
function foo() {
var a = b = 0;
// ...
}
应该为如下写法:
function foo()
{
var a, b;
a = b = 0; // both local
}
// 定义三个global变量
var global_var = 1;
global_novar = 2; // antipattern
(function () {
global_fromfunc = 3; // antipattern
}());
// attempt to delete
delete global_var; // false
delete global_novar; // true 删除的是global对象的属性
delete global_fromfunc; // true 删除的是global对象的属性
// test the deletion
typeof global_var; // "number"
typeof global_novar; // "undefined"
typeof global_fromfunc; // "undefined"
在浏览器环境下window对象指向的是global对象,如果非浏览器环境:
var global = (function () {
return this;
}());
单一的var
function func() {
var a = 1,
b = 2,
sum = a + b,
myobject = {},
i,
j;
// function body...
}
好处:1.在函数的统一的区域可以查找到所有的局部变量
2.防止在定义前使用变更错误
3.使全局变量出现的可能性缩小,增强代码可读性
4.更少的代码
for循环
对于下面循环方式是非常低效的,特别对于HTMLCollections对象,因为每一次遍历都要重新计算length,推荐把length用变量缓存起来
// sub-optimal loop
for (var i = 0; i < myarray.length; i++) {
// do something with myarray[i]
}
HTMLCollections are objects returned by DOM methods such as:
• document.getElementsByName()
• document.getElementsByClassName()
• document.getElementsByTagName()
document.images
document.links
document.forms
document.forms[0].elements
高效方式
for (var i = 0, max = myarray.length; i < max; i++) {
// do something with myarray[i]
}
分享到:
相关推荐
JavaScript常见的一些设计模式学习笔记和代码实现。包括工厂模式、单例模式、代理模式、发布订阅模式、中介者模式等等内容。
JavaScript写的DES加密解密的代码,运行模式为CBC,纯源码觉得可以运行。加密前:select item_no,item_name,price,sale_price from t_bd_item_info where item_no='00002', 加密后:V+WKfe9+DcuPpwU7mJ8krkgpztgU7...
JS的代码模式分析,确定在JavaScript包/文件中无缝复制的结构相似的代码模式。
提供了专家级的解决方案,不仅透彻剖析了JavaScript扣的面向对象编程,而且深入探讨了如何用JavaScript实现以前只在服务器端应用的设计模式,如何根据实际场景选择恰当的设计模式,开发出高质量的企业级代码。...
一个比较有意思的js库可以为javascript的对象实现观察者模式,以往我们使用javascript实现的观察者模式都是通过使用回调函数配合dom上的event事件来操作的,而“Watch.js”可以为javascript的对象实现观察者模式,...
资源名称:编写可靠的JAVAscript代码 测试驱动开发JAVAscript商业软件内容简介:《编写可靠的Javascript代码 测试驱动开发Javascript商业软件》分为5个部分:第Ⅰ部分“奠定坚实的基础”...
109:四屏切换JS广告代码下载 110:JavaScript图片切换效果 下载 111:在线客服代码 下载 112:单独关闭的两边悬挂代码下载 113:全屏可伸缩可关闭广告代码下载 114:四屏JS带缩略图的焦点图 下载 115:书角带阴影的...
javascript的策略模式和代理模式简介,附代码
在吃透了前面所说的书之后,接下来两本书的顺序已经无关紧要了,《JavaScript DOM高级程序设计》(注意和《JavaScript 高级程序设计》相区别)和《JavaScript设计模式》,这两本都是重量级的书,能让你的JS技术上一...
为了帮助大家快速和较好地理解JavaScript设计模式中的单例模式,本文对JavaScript的单例模式进行了分析并进行简易的代码演示,希望本文能够给有需要的人带来一点小小的帮助。
类式继承模式#1——默认模式 类式继承模式#2——借用构造函数 类式继承模式#3——借用和设置原型 类式继承模式#4——共享原型 类式继承模式#5——临时构造函数 Klass 原型继承 通过复制属性实现继承...
讲解了JavaScript面向对象和函数式编程方面的基础知识,介绍了面向对象的设计原则及其在设计模式中的体现,还分享了面向对象编程技巧和日常开发中的代码重构。本书将教会你如何把经典的设计模式应用到JavaScript语言...
《Javascript 设计模式》课程代码源码
JS实现单例模式的6种方案汇总 今天在复习设计模式中的-创建型模式,发现JS实现单例模式的方案有很多种,稍加总结了一下,列出了如下的6种方式与大家分享 大体上将内容分为了... 说说它的优点: 1,单例模式声明一
在第Ⅱ部分“测试基于模式的代码”中,我们描述并使用测试驱动开发创建了 几个有用的代码模式。 第Ⅲ部分“测试和编写高级JavaScript特性”描述了如何使用和测试 JavaScript语言更高级的特性。 第Ⅳ部分“测试中的...
外文翻译:学用JavaScript设计模式,pdf版本,中文版 设计模式是可重用的用于解决软件设计中一般问题的方案。设计模式如此让人着迷,以至在任何编程语言中都有对其进行的探索。 其中一个原因是它可以让我们站在巨人...
如果您是一名有经验的开发者,正在寻找与对象、函数、继承以及其他特定语言分类,那么本书中的抽象方案和代码模板将是十分理想的指南,无论您正在使用Javascript编写客户端、服务端,抑或是桌面应用程序。...
js实现拼图游戏,简单、中等、困难等五种难度模式,高分web课设代码! js实现拼图游戏,简单、中等、困难等五种难度模式,高分web课设代码! js实现拼图游戏,简单、中等、困难等五种难度模式,高分web课设代码! js...
109:四屏切换JS广告代码下载 110:JavaScript图片切换效果 下载 111:在线客服代码 下载 112:单独关闭的两边悬挂代码下载 113:全屏可伸缩可关闭广告代码下载 114:四屏JS带缩略图的焦点图 下载 115:书角带阴影的...
本文将带你了解匿名函数的代码模式原理。 OK,先来看看更多匿名函数调用模式: 代码如下: (function(){alert(1);}()) (function(){alert(2);})() void function(){alert(3);}() 以上3个都是...