`

JavaScript模式化编程

 
阅读更多

 

我不知道现在生活中的苦是不是对自己是一种好处,我也不知道现在的好是不是坏处,希望一切的一切会更好。

 

我想写这篇文章好久了,有的时候都不知道自己从那写起。从基础写起,又怕被喷,太难了,又怕自己写的不好,又被喷。最好我想想还是写下这篇文章,可以说这是我干这么多年总结下来的结晶了。

 

JavaScript模式

 

说起这个,如果是程序员的应该都不陌生,我只不过他大家平时用到的,写下来系统化罢了,没什么大不了,嘿嘿。

 

好了说了半天,大家以为我在写心情,嘿嘿说说正题吧。

 

1.基本原则

  原则问题不能变,写模式唯一的好处就是可维护性好,编写出让人羡慕的代码才会是好代码。

  1.1 编写可维护的代码

    特性:阅读性好,具有一致性,预见性好,看起来如同一个人编写的,有文档

  1.2 尽量少用全局变量

    全局变量的坏处真是大大的,为了一个全局变量,有多少bug产生,有多少程序员要加班加点的干活。

    我这里就写一个原因,全局变量多的代码不好移植。页面上会有很多其他开发人员编写的代码。如果其中一个广告合作伙伴的脚本有x这个全局变量,你的脚本大量使用x的话,那么多发生什么事情,

    大家可见一斑了,非常的恶劣的bug。

    写一段代码:

<script type="text/javascript">

<!--

globleParam = "HellWorld";

console.log(globleParam);

console.log(window.globleParam);

console.log(window["globleParam"]);

console.log(this.globleParam);

//-->

</script>

    上面写了关于全局变量的调用

  1.3 变量释放的难题

    使用var创建的全局变量不能删除

    不使用var创建的隐含全局变量可以删除

    这说明隐含全局变量严格来讲不是真正的变量,而是全局对象的属性,属性可以通过delete操作符删除,但变量不可以

 

    例子:

      <script type="text/javascript">

  <!--

var global_1 = 1;

global_2 = 2;

(function(){

global_3 = 3;

}());

 

delete global_1;

delete global_2;

delete global_3;

 

console.log(typeof global_1);

console.log(typeof global_2);

console.log(typeof global_3);

  //-->

  </script>

 

  1.4 简单的访问全局变量

  var global = (function(){

return this;

  }());

  有的时候,为了快速得到全局对象,必须用这种方式

  1.5单一var模式

  这个可以说我是看jquery框架时候,感觉的。然后在网上查询了一下,发现大家也在用这个模式,很简单,就是将变量都放到一个var中,这样好处避免出现上面的全局变量问题还有就是变量复写的问题

 

  1.6 for循环的小细节

  在for中,要使用单一var这个模式,这个会节省很多不必要的计算时间的问题

  比如:

  for(var i = 0 ,max = myarray.length;i<max;i+=1){

 

  }

  1.7 for-in中的小判断

  for-in要进行属性检查,这个避免clone方法等不必要的方法进行操作

 

  <script type="text/javascript">

  <!--

  var people = {

name:'chenhailong',

age:'30',

sex:'male'

  }

  if(typeof Object.prototype.clone === 'undefined')

  {

Object.prototype.clone = function(){};

  }

  for(var i in people)

  {

if(people.hasOwnProperty(i)){

console.log(i,":",people[i]);

}

  }

    for(var i in people)

  {

console.log(i,":",people[i]);

  }

  //-->

  </script>

 

  1.8 在程序中要用“===”进行判断

  这样加上类型判断

  1.9 避免使用eval()

  eval是魔鬼,eval内部可以看作是全局变量,和上面的全局模式一样,尽量少用。

  1.10关于parseInt()的思考

  下面举一个例子:

    <script type="text/javascript">

  <!--

    var i = "09", 

   j = "06";

i = parseInt(i);

j = parseInt(j);

console.log(i,j);

i = new Number("09");

j = new Number("06");

console.log(i.toString(),j.toString());

i = "09";

j = "06";

i = parseInt(i,10);

j = parseInt(j,2);

console.log(i,j);

  //-->

  parseInt()的时候一下,要注意进制问题

  1.11添加Doc文档

  YUIDoc范例:

  我自己写了文章,下面提供链接

  http://chenhailong.iteye.com/admin/blogs/1724746

  你也出的javasscript source 一定要生成YUIDoc文档的,我希望大家这样,袁芳你怎么看?

 

 1.12 我不知道大家用没用过JSLint,一个非常好的工具,可以这样说,我现在所有写的规范模式,JSLint上面都有检查,如果你不符合上面写的东西,JSLint就是警告或者报错哦

 

我也强烈建议大家使用这个软件,原因有很多,最主要的是方便和减少bug的量,让你写出的代码大家去羡慕去吧。

 

 

太长了,我就写到这里,可以参看后文。

 

 

 

分享到:
评论

相关推荐

    JavaScript设计模式+JavaScript模式+JavaScript异步编程

    JavaScript模式不仅包括设计模式,还包括编码风格和最佳实践。例如: - 命名约定:遵循一致的变量、函数和类命名规则,如驼峰命名法。 - 避免全局变量污染:使用立即执行函数表达式(IIFE)或模块模式来限制作用...

    JavaScript模块化编程

    ### JavaScript模块化编程 #### 一、理解JavaScript模块化 ##### 1.1 模块化的概念 在软件工程中,模块化是一种重要的设计思想,指的是将复杂的系统分解成一系列独立的功能单元(即模块),每个模块负责实现系统...

    Javascript模块化编程详解

    JavaScript模块化编程是一种组织代码的方式,它使得代码更容易理解和维护。模块化编程通过将相关的功能封装起来,避免了全局变量的滥用,提高了代码的复用性。本文将深入讲解JavaScript模块化编程的基础和一些进阶...

    JavaScript_DOM编程艺术第二版(中文)

    总的来说,"JavaScript DOM编程艺术第二版"是一本全面介绍JavaScript与DOM结合的实践指南,它将帮助读者从初级到高级,系统地掌握JavaScript在网页动态化中的应用,提升Web开发技能。通过阅读这本书,开发者不仅能...

    javascript指南和函数式编程

    通过学习这些内容,开发者不仅能提升JavaScript的编程技巧,还能培养出更清晰的思维模式,写出更简洁、更易于测试和维护的代码。无论是初学者还是经验丰富的开发者,深入研究这些话题都将对个人的编程能力产生积极的...

    Javascript模块化编程(Require.js)

    JavaScript模块化编程是一种组织代码的方式,它使得代码更易于维护、重用和协作。Require.js是JavaScript的一个模块加载器,它引入了AMD(Asynchronous Module Definition)规范,为JavaScript提供了异步加载模块的...

    JavaScript高级编程 pdf

    "JavaScript高级编程"这本书深入探讨了这门语言的高级特性和最佳实践,旨在帮助开发者提升技能水平,实现更高效、更可靠的代码编写。以下是该书可能涵盖的一些关键知识点: 1. **基础语法**:包括变量、数据类型...

    JavaScript书籍(JavaScript模式.pdf+JavaScript高效图形编程.pdf)

    在《JavaScript模式》这本书中,作者深入探讨了JavaScript的各种编程模式,这些模式是解决常见编程问题的最佳实践,可以帮助开发者编写出更加清晰、可维护的代码。书中可能涵盖了以下内容: 1. **函数式编程**:...

    JavaScript动态网页编程

    8. **框架与库**:现代JavaScript开发常使用React、Vue、Angular等前端框架,它们提供了组件化开发模式,简化了大型应用的构建。同时,还有如Lodash、Moment.js等辅助库,帮助开发者更高效地处理常见任务。 9. **...

    javascript函数式编程

    在实际应用中,JavaScript的函数式编程库如Ramda、Lodash的FP模式版,提供了一套工具集,可以帮助我们更方便地进行函数式编程。 综上所述,JavaScript函数式编程通过纯函数、高阶函数、柯里化、函数组合以及异步...

    JavaScript面向对象编程指南(第2版).rar

    11. 设计模式:介绍在JavaScript中常见的一些设计模式,如单例模式、工厂模式、观察者模式等。 通过深入学习这本《JavaScript面向对象编程指南(第2版)》,开发者不仅能掌握JavaScript的面向对象编程基础,还能...

    JavaScript面向对象编程指南

    这些只是JavaScript面向对象编程的一些基本概念和技巧,实际应用中还有更深入的模式和策略,如模块化、设计模式等。理解并熟练运用这些概念,将有助于你编写出更加高效、可维护的JavaScript代码。

    JavaScript面向对象编程指南 pdf

    面向对象编程(Object-Oriented Programming,OOP)是JavaScript中的一个重要概念,它允许开发者以更加模块化、可复用的方式组织代码。下面将详细探讨JavaScript面向对象编程的基本原理、特性以及实际应用。 1. **...

    论JavaScript模块化编程_.docx

    在JavaScript的传统开发模式中,全局变量的滥用、脚本依赖顺序的混乱以及大量脚本一次性加载导致的页面假死等问题日益突出,这正是模块化编程应运而生的原因。 JavaScript模块化编程通过将代码划分为独立的、可复用...

    JavaScript模块化编程七日

    JavaScript模块化编程是现代Web开发中的关键组成部分,它允许开发者将复杂的代码结构组织成可重用、可维护的模块。在“JavaScript模块化编程七日”这个主题中,我们将深入探讨这一重要概念,涵盖从基本的模块化原理...

    JavaScript高效图形编程--高清版.pdf

    7. 图形编程模式和设计模式:在图形编程中,应用一些设计模式和编程模式,如模块化、对象继承、观察者模式等,可以提高代码的可维护性和可扩展性。 8. 实际项目案例分析:通过分析一些实际案例,可以帮助读者更好地...

    Javascript模块化编程(三):模块化编程实战,试用SeaJS

    JavaScript模块化编程是现代Web开发中的重要组成部分,它有助于组织代码、提高可维护性和复用性。本篇文章将深入探讨JavaScript模块化编程的实战应用,特别是通过试用SeaJS这一工具来实现。SeaJS是一款专注于浏览器...

    javascript 函数式编程

    总之,JavaScript的函数式编程提供了一种不同的思考和解决问题的方式,它鼓励编写模块化、无副作用的代码,从而提高代码质量。通过学习和实践函数式编程,开发者可以更好地驾驭JavaScript,写出更高效、更易于理解和...

Global site tag (gtag.js) - Google Analytics