JavaScript是所谓的客户端脚本语言,它是运行在互联网浏览器内部的计算机编程语言(浏览器也称为Web客户端,因为它连接到Web服务器下载页面)。JavaScript的工作方式非常有趣。一些JavaScript代码被插入到普通网页中。当浏览器加载页面时,浏览器的内置解释器将读取并运行它在页面中找到的JavaScript代码。
我做Web开发四年,或多或少积累了一些JavaScript脚本。例如,将输入限制为仅数字的脚本;按回车键自动进入下一个控件,相当于Tab键。因为JavaScript数值运算的结果往往不是我们想要的,所以必须有浮点运算(加减乘除)功能。每次需要JavaScript的时候,往往需要在网上找到需要的脚本直接复制到aspx文件,或者新建一个JavaScript文件,然后添加一个引用脚本src=' http : jscript . js ' type=' text/JavaScript '/script,这样客户端脚本就完成了。毕竟对JavaScript的需求不多,所以学起来不需要太多的功夫。
最近公司的项目都不忙,所以业余时间就赶着去补习剧本的知识。网上有一个流行的JQuery脚本库,园内有很多文章讨论如何使用。从我个人的经验来看,JavaScript和正则表达式一样,经常被学习和遗忘。不学以致用,很快就会忘记。尤其是应用相关的内容,比如如何使用PageMethods,如何为客户实现短回调,如何使用JavaScript调用Web服务,在项目中已经用了很多次了,但是一旦被同事问到,还是模糊不清,很难讲清楚为什么。我的一个方法就是做演示,把各种效果的演示做好,放在不同的类别里放在一起,用的时候再搜索,可以节省很多时间。今天的文章中提到了另一种方式,就是将JavaScript进行整理,做成通用的脚本库,方便重用。整理的意义是适当调整功能,使其既能满足当前项目的需要,又能满足未来项目的需要。另一个意思是规范命名和组织结构,编写样例代码以便于使用。有时候我在网上下载了很多JavaScript实用脚本,但是忘记下载它的测试脚本了,不知道怎么用。最好在网上再搜一遍。
JavaScript被定义为一种基于对象的脚本语言。一方面是基于DOM对象模型和DOM对象中的方法;另一方面,它不具备面向对象语言的继承性和多态性特征。ASP.NET Ajax扩展了JavaScript,因此我们可以以面向对象的方式组织JavaScript脚本。我在这里的主要工作是封装现有的代码,以便下次重用。因此,有两种方法来组织现有的JavaScript代码库。我将以JavaScript中有争议的加法和减法为例,看看如何封装它们。
JavaScript风格
函数Math(){ }//add Math . prototype . add=function(arg 1,arg2) {varr1,R2,m;尝试{r1=arg1.toString()。拆分('.')[1].length}catch(e){r1=0}尝试{r2=arg2.toString()。拆分('.')[1].length } catch(e){ r2=0 } m=math . pow(10,Math.max(r1,R2)) return (arg1*m arg2*m)/m} //减法math.prototype .减法=函数(arg1,arg2) {varr1,R2,m,n;尝试{r1=arg1.toString()。拆分('.')[1].length}catch(e){r1=0}尝试{r2=arg2.toString()。拆分('.')[1].length } catch(e){ R2=0 } m=math . pow(10,Math.max(r1,R2));n=(r1=r2)?r1:r2返回((arg1*m-arg2*m)/m)。toFixed(n);}调用方法var Math=new Math();var结果=数学。Add(2.0,4.0);AJAX样式类型。registernamespace("实用程序");效用。数学=函数(larg,rarg) { this。_ left=larg这个。_ right=rarg}实用程序。Math.prototype={//加法函数Add:function () {var r1,r2,m;尝试{r1=left.toString()。拆分('.')[1].length}catch(e){r1=0}尝试{r2=right.toString()。拆分('.')[1].length } catch(e){ r2=0 } m=math . pow(10,Math.max(r1,R2)) return (left*m right*m)/m} //减法函数: function () {varr1,R2,m,n;尝试{r1=left.toString()。拆分('.')[1].length}catch(e){r1=0}尝试{r2=right.toString()。拆分('.')[1].length } catch(e){ R2=0 } m=math . pow(10,Math.max(r1,R2));n=(r1=r2)?r1:r2返回((左* m-右*m)/m)。toFixed(n);} }//注册类utility . math . register class(" utility . math ");然后,在必要时,可以使用以下方法调用varmath=newutility.math (2.0,4.2);var结果=数学。add();使用以上两种方法,方便封装常用的JavaScript,减少重复。
上面的命名有问题,因为Math是JavaScript的内置类型,用来处理各种数学运算。为了运行上面的JavaScript风格的脚本,您必须将类名更改为其他名称,例如MathHelper。ASP.NET Ajax还扩展了六种类型的JavaScript,即数组、布尔、日期、错误、对象和字符串。
有了方法,估计会有朋友说你应该发布自己的JavaScript库,这样才能满足大众的口味。只有这种方法,还是很难练习的:项目时间紧是有原因的,所以每天都在忙项目,还有就是不熟悉JavaScript的原因。
为了不让我的类库很好吃,我上网找了一些关于编写JavaScript库的建议。
有篇文章叫《Building a JavaScript Library》。写这篇文章之前我想看看他是怎么写的,但是网页上总是显示文件正在加载,所以我看不到。我很想知道外国人是怎么写同一主题的。
还有一篇很精彩的文章,名字是《Rules For JavaScript Library Authors》,地址在http://dean.edwards.name/weblog/2007/03/rules/.
我翻译给你参考。
1不要用得太麻烦。避免使用Object.prototype 3,不要做过多的扩展,遵守标准。5跟上优秀的JavaScript创作者6保持灵活7管理好内存,避免内存泄漏。8避免浏览器相关的黑客攻击9保持类库简洁10保持类库可预测。例如,虽然你没有检查文档,但你应该可以猜测数学是一个规则:文档,处理与数学运算相关的内容11加点;尽可能使用名称空间来组织代码,以便于记忆;
我的水平很一般,一个很普通的程序员。所以别问我要密码。我给你的,你得花点时间看看。我的代码没有文档,所以你看不懂。相反,你为什么不整理一下你的JavaScript呢?另外,你手里的JavaScript其实已经被你用过了,你一定很熟悉。也不推荐JQuery,这不是我的目的。我的目的是教你整理现有的JavaScript脚本库,很好的利用现有的资源。
测试代码下载: http://xiaozai.jb51.net/201509/yuanma/math-test(jb51.net)。
增加一个常见问题:如果将JavaScript放入外部文件,运行时可能会提示“找不到对象”的问题是文件编码造成的。要保持JavaScript脚本文件的编码与HTML页面文件的编码一致,请单击文件-另存为选项,以相同的编码格式存储两者。
建议使用VS IDE编写脚本,这样可以使用IDE提供的智能提示支持。
如果使用Dreamweaver编写脚本,它还会提供智能提示。
以上内容介绍了JavaScript脚本库的编写方法,希望大家喜欢。