全局变量
尽量不要使用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代码。 1. **工厂模式**:这是一种创建型设计模式,它提供了一个创建对象的接口,但允许子类决定实例化哪一个...
第二部分是核心部分,通过一步步完善的代码示例,由浅入深地讲解了16个设计模式,包括 singleton模式、Factory模式、Abstract Factory模式、Builder模式、Prototype模式、Adapter模式、Bridge模式、Composite模式、...
在"js-cpa-master"这个压缩包中,很可能包含了用于分析JavaScript代码模式的工具或示例代码。通过研究这个资源,开发者可以深入理解各种代码模式,从而提升自己的编程技巧和代码质量。总的来说,理解和掌握...
1. 单体模式(Singleton Pattern): 单体模式是JavaScript中最基本的设计模式之一。它的主要作用是提供一个命名空间,减少全局变量的数量,避免代码冲突,并组织代码使其易于维护。单体模式可以用来划分命名空间,...
### JavaScript 严格模式详解 #### 引言 在JavaScript中,**严格模式**(strict mode)是ECMAScript 5引入的一...对于任何希望编写高质量、可维护的JavaScript代码的开发者来说,理解和应用严格模式都是非常必要的。
JavaScript写的DES加密解密的代码,运行模式为CBC,纯源码觉得可以运行。加密前:select item_no,item_name,price,sale_price from t_bd_item_info where item_no='00002', 加密后:V+WKfe9+DcuPpwU7mJ8krkgpztgU7...
JavaScript设计模式是由张容铭编著的一本关于JavaScript编程领域的重要参考书籍,主要探讨了如何在JavaScript编程中应用设计模式...通过阅读和实践书中的内容,你将能够写出更加优雅、高效和易于维护的JavaScript代码。
这些构成了编写任何JavaScript代码的基础。 2. **DOM操作**:文档对象模型(DOM)是HTML和XML文档的编程接口。JavaScript通过DOM可以查找、修改和添加页面元素,实现动态更新和交互效果。 3. **事件处理**:...
设计模式和异步编程是提升JavaScript代码质量和效率的关键。以下将详细介绍这三本书所涵盖的知识点: 1. **JavaScript设计模式**: 设计模式是软件工程中经过实践验证的、解决常见问题的有效方法。在JavaScript中...
"代码高亮显示JavaScript插件"是专门用于在Web页面中美化和突出显示JavaScript代码的工具,它能够将原始的黑白文本代码转换为具有不同颜色、字体和样式的视觉盛宴。本文将深入探讨这一主题,详细介绍JavaScript代码...
类式继承模式#1——默认模式 类式继承模式#2——借用构造函数 类式继承模式#3——借用和设置原型 类式继承模式#4——共享原型 类式继承模式#5——临时构造函数 Klass 原型继承 通过复制属性实现继承...
此外,电子书还可能会介绍一些JavaScript的高级特性和技巧,这些内容能够帮助开发者突破传统思维的限制,拓展开发思路,写出更优雅、更符合现代Web开发需求的JavaScript代码。 总之,通过学习《Javascript 设计模式...
策略模式和代理模式是设计模式中的两种常见模式,它们在软件开发中扮演着重要的角色,尤其是在JavaScript中,这两种模式提供了更加灵活和可维护的代码结构。 策略模式(Strategy Pattern)是一种行为设计模式,它...
JavaScript设计模式详解与函数式编程是开发者提升代码质量和可维护性的重要工具。设计模式是对在软件设计中经常出现的问题和解决方案的一种模式化描述,而函数式编程则是一种编程范式,强调程序数据的不可变性和函数...
"himppf"可能是作者或某个特定的代码风格指南,"jspremise"可能是指JavaScript的基础概念,"精通javascript"则强调了对这门语言的深入理解和熟练掌握,而"Js设计模式"则是我们讨论的重点。 JavaScript设计模式主要...
JavaScript中的单例模式是一种设计模式,它确保一个类只有一个实例,并提供一个全局访问点来...通过了解和运用这些单例模式的实现方法,开发者可以在JavaScript项目中更好地控制对象的创建和管理,提高代码质量和效率。
一个比较有意思的js库可以为javascript的对象实现观察者模式,以往我们使用javascript实现的观察者模式都是通过使用回调函数配合dom上的event事件来操作的,而“Watch.js”可以为javascript的对象实现观察者模式,...
在JavaScript编程中,设计模式同样具有重要意义,可以帮助开发者以一种优雅的方式组织代码,解决常见的编程问题。 本书《学用JavaScript设计模式》主要面向有一定JavaScript基础知识的专业开发者,旨在帮助他们提高...
资源名称:编写可靠的JAVAscript代码 测试驱动开发JAVAscript商业软件内容简介:《编写可靠的Javascript代码 测试驱动开发Javascript商业软件》分为5个部分:第Ⅰ部分“奠定坚实的基础”...
JavaScript 设计模式是一个非常重要的概念,在前端开发中,掌握设计模式可以提高开发效率和代码质量。本文将对 JavaScript 设计模式进行总体介绍,并对闭包、封装等重要概念进行详细讲解。 一、闭包 闭包是 ...