`

JS 代码模式(1)

阅读更多

全局变量

尽量不要使用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]
}

分享到:
评论

相关推荐

    JS设计模式笔记和代码

    JavaScript常见的一些设计模式学习笔记和代码实现。包括工厂模式、单例模式、代理模式、发布订阅模式、中介者模式等等内容。

    JavaScript(js)打造DES加密解密,模式CBC(源代码)

    JavaScript写的DES加密解密的代码,运行模式为CBC,纯源码觉得可以运行。加密前:select item_no,item_name,price,sale_price from t_bd_item_info where item_no='00002', 加密后:V+WKfe9+DcuPpwU7mJ8krkgpztgU7...

    JS的代码模式分析

    JS的代码模式分析,确定在JavaScript包/文件中无缝复制的结构相似的代码模式。

    Javascript设计模式源码

    提供了专家级的解决方案,不仅透彻剖析了JavaScript扣的面向对象编程,而且深入探讨了如何用JavaScript实现以前只在服务器端应用的设计模式,如何根据实际场景选择恰当的设计模式,开发出高质量的企业级代码。...

    javascript观察者模式Watch.JS.zip

    一个比较有意思的js库可以为javascript的对象实现观察者模式,以往我们使用javascript实现的观察者模式都是通过使用回调函数配合dom上的event事件来操作的,而“Watch.js”可以为javascript的对象实现观察者模式,...

    编写可靠的javascript代码测试驱动开发javascript商业软

    资源名称:编写可靠的JAVAscript代码 测试驱动开发JAVAscript商业软件内容简介:《编写可靠的Javascript代码 测试驱动开发Javascript商业软件》分为5个部分:第Ⅰ部分“奠定坚实的基础”...

    网页广告 代码全集 js 广告代码 大全 1-61 (A)

    109:四屏切换JS广告代码下载 110:JavaScript图片切换效果 下载 111:在线客服代码 下载 112:单独关闭的两边悬挂代码下载 113:全屏可伸缩可关闭广告代码下载 114:四屏JS带缩略图的焦点图 下载 115:书角带阴影的...

    js策略模式和代理模式

    javascript的策略模式和代理模式简介,附代码

    javascript DOM高级程序设计 及 javascript 设计模式

    在吃透了前面所说的书之后,接下来两本书的顺序已经无关紧要了,《JavaScript DOM高级程序设计》(注意和《JavaScript 高级程序设计》相区别)和《JavaScript设计模式》,这两本都是重量级的书,能让你的JS技术上一...

    JavaScript设计模式之单例模式.md

    为了帮助大家快速和较好地理解JavaScript设计模式中的单例模式,本文对JavaScript的单例模式进行了分析并进行简易的代码演示,希望本文能够给有需要的人带来一点小小的帮助。

    JavaScript模式中文[pdf] 百度云

     类式继承模式#1——默认模式  类式继承模式#2——借用构造函数  类式继承模式#3——借用和设置原型  类式继承模式#4——共享原型  类式继承模式#5——临时构造函数  Klass  原型继承  通过复制属性实现继承...

    javascript设计模式与开发实践

    讲解了JavaScript面向对象和函数式编程方面的基础知识,介绍了面向对象的设计原则及其在设计模式中的体现,还分享了面向对象编程技巧和日常开发中的代码重构。本书将教会你如何把经典的设计模式应用到JavaScript语言...

    《Javascript 设计模式》课程代码源码

    《Javascript 设计模式》课程代码源码

    【JavaScript源代码】JS实现单例模式的6种方案汇总.docx

    JS实现单例模式的6种方案汇总  今天在复习设计模式中的-创建型模式,发现JS实现单例模式的方案有很多种,稍加总结了一下,列出了如下的6种方式与大家分享 大体上将内容分为了... 说说它的优点: 1,单例模式声明一

    《编写可靠的JAVASCRIPT代码 测试驱动开发JAVASCRIPT商业软件》PDF

    在第Ⅱ部分“测试基于模式的代码”中,我们描述并使用测试驱动开发创建了 几个有用的代码模式。 第Ⅲ部分“测试和编写高级JavaScript特性”描述了如何使用和测试 JavaScript语言更高级的特性。 第Ⅳ部分“测试中的...

    学用 JavaScript 设计模式.pdf

    外文翻译:学用JavaScript设计模式,pdf版本,中文版 设计模式是可重用的用于解决软件设计中一般问题的方案。设计模式如此让人着迷,以至在任何编程语言中都有对其进行的探索。 其中一个原因是它可以让我们站在巨人...

    JavaScript模式【英文版】.pdf

    如果您是一名有经验的开发者,正在寻找与对象、函数、继承以及其他特定语言分类,那么本书中的抽象方案和代码模板将是十分理想的指南,无论您正在使用Javascript编写客户端、服务端,抑或是桌面应用程序。...

    js实现拼图游戏,简单、中等、困难等五种难度模式,高分web课设代码!

    js实现拼图游戏,简单、中等、困难等五种难度模式,高分web课设代码! js实现拼图游戏,简单、中等、困难等五种难度模式,高分web课设代码! js实现拼图游戏,简单、中等、困难等五种难度模式,高分web课设代码! js...

    网页广告 代码全集 js 广告代码 62-120 大全 (B)

    109:四屏切换JS广告代码下载 110:JavaScript图片切换效果 下载 111:在线客服代码 下载 112:单独关闭的两边悬挂代码下载 113:全屏可伸缩可关闭广告代码下载 114:四屏JS带缩略图的焦点图 下载 115:书角带阴影的...

    Javascript 匿名函数及其代码模式原理

    本文将带你了解匿名函数的代码模式原理。 OK,先来看看更多匿名函数调用模式: 代码如下: (function(){alert&#40;1&#41;;}()) (function(){alert&#40;2&#41;;})() void function(){alert&#40;3&#41;;}() 以上3个都是...

Global site tag (gtag.js) - Google Analytics