木子屋 Dnawo's BLOG

分类:脚本语言

共 349 篇

Javascript风格要素 Ⅱ

我们使用习惯用法可以使我们的意图更加的清晰和简洁。 使用==时,当心强制转换 考虑下面函数: ==运算符不应该被用着和true比较值,因为它要执行强制转换。如果我们想确定d.w.sv.checked是否是布尔值 true,我们必须用===运算符。如果我们仅在意一个值是真实存在的不是假的,最好不要用相等运算符。 例如,由于强制转换:1 == true是真,1 === true是假。==运算符隐藏了类型错误。 使用?:运算符选择两值之一 if语句通常被用来从两个值中选择一个。这应该是三元操作符?:最适合的。 绝不使用隐含的全局变量 变量zv不是作为一个var或函数参数来声明的,所以它是一个隐式的全局变量。如果这个页面的另一个函数使用了同样名字的全局变量,则可能得到一个失败的结果。这样的臭虫(bug)是非常难以发现,却很容易避免。这个例子中,我们既可以声明zv为一个var,也可以发现它仅仅被使用过一次而整个去掉它。…

Javascript风格要素 Ⅰ

程序设计是困难的,其核心是管理的复杂性。计算机程序是人类做出的最复杂的东西。质量是不可靠的且隐蔽的。 好的体系架构是必需给程序足够的结构使其健壮而不会陷入混乱的泥淖,但我们表达一个程序细节的方式是同等重要的。一个程序的本质会被不良的编码所隐藏。只有当一个程序的表达清晰时,我们才能有希望正确的推理出它的效率、安全和正确性。 William Strunk的《风格要素》(The Elements of Style)是关于文学风格的经典著作,它是一本关于英文写作的薄手册,在用法、组织和形式上提出忠告。风格的理念应用于编程,在1972年Kreitzberg和Shneiderman的《FORTRAN风格要素》(The Elements of FORTRAN Style)中是不成功的,但在1978年的Kernighan和Plauger的《编程风格要素》(The Elements of Programming Style)中是非常成功的:…

使用$扩展document.getElementById

JavaScript和其他语言的标识符有一个很大的不同,JavaScript允许其标识符的任何地方使用美元符号($),可能是大家对$都有特殊的感情的缘故吧,很多人喜欢用它来做一些事情:jQuery是使用$来返回一个jQuery对象、prototype.js使用$扩展了document.getElementById等等。在众多的使用中,我比较喜欢用$来扩展document.getElementById,实用、方便,呵呵:

站长网拖拽效果完整Js

今天在逛站长网时无意中发现站长工具页(http://tool.admin5.com/)各类工具位置支持拖拽,一时兴起研究了下脚本,下边是D下来的脚本(稍做了修改):

Javascript 压缩

当Js库中的内容越来越多时,文件的大小随之增大,当达到上百K的时候它在网络上传输的速度就不能忽视了,如下两个文件: http://p.mail.163.com/dm3style/js/0801181756/engine.js http://p.mail.163.com/dm3style/js/0801181756/mainmodule.js 当在DW中打开engine.js和mainmodule.js时你会惊奇的发现它们只有一行:没有注释、没有空白字符、没有换行!这便是对Js进行了压缩,通过删除注释、空白字符和换行符以达到减小文件大小的目的。 很多压缩Js的软件都把压缩的等级分成了4级,这4个等级的压缩程度各有不同:…

让FireFox支持innerText

默认FireFox是不支持innerText的,不过它有一个属性textContent的作用和innerText是一样的,使用方法如下: 对于习惯使用innerText的人来说有点不舒服,于是网上有人就给FireFox也创建了一个innerText属性,代码如下:

1月30日加一个月是几月几日?

1月30日加一个月是几月几日?VBScript和JavaScript分别采用了两种不同的计算方法,看下边两个例子: VBScript: JavaScript: 从例子中我们可以看出: 1.对于VBScript,大部分情况是将当前日期加上当月最大天数,但如果相加的结果不是一个正确的日期(如2月30日),VBScript则相加的天数进行相应的减少,直到下个月的最后一天为止; 2008-1-28 2008-2-28 31 2008-1-29 2008-2-29 31 2008-1-30 2008-2-29 30 2008-1-31 2008-2-29 29 2008-2-1 2008-3-1 29 2008-2-2 2008-3-2 29…

escape、encodeURI、encodeURIComponent三个函数比较

JavaScript中escape、encodeURI、encodeURIComponent三个函数都具有的编码的功能,并对应的定义了三个解码函数unescape、decodeURI、decodeURIComponent,它们有什么不同呢?综合书上讲的和网上搜索主要为以下三点: 1.编码格式:encodeURI和encodeURIComponent都是采用UTF-8,而escape是采用Unicode; 2.不编码的范围:三个函数都不对、、进行编码,除此之外,escape还不对"@*_+-.\"进行编码;encodeURI还不对"-_.!~*'();/?:@&=+$,#"进行编码;encodeURIComponent还不对"-_.!~*'()"进行编码,可见escape不编码的字符最少(69个),encodeURIComponent其次(71个),encodeURI最多(82个);…

JavaScript时间格式转换总结

1.当前系统区域设置格式(toLocaleDateString和toLocaleTimeString) 例子:(new Date()).toLocaleDateString() + " " + (new Date()).toLocaleTimeString() 结果: 2008年1月29日 16:13:11 2.普通字符串(toDateString和toTimeString) 例子: (new Date()).toDateString() + " " + (new Date()).toTimeString() 结果:Tue Jan 29 2008 16:13:11 UTC+0800 3.格林威治标准时间(toGMTString)…