Js编程原则和良好习惯

1、预留退路:在禁止Js或者Js不被支持的情况下,网页还能正常工作。也就是说,虽然某些功能无法使用,但最基本的操作仍能顺利完成。

案例:点击链接,打开一个新窗口。
就如本站的登录(弹出一个模拟窗口),与其让用户在点击链接的时候被带离当前页面,不如让用户仍停留在当前页面,并用一个弹出窗口来显示相关信息,这无疑是一种更好的解决方法。
一些错误的写法:
伪协议:<a href="javascript:showWindow(‘login‘, this.href);" >登录</a>
内嵌事件处理函数:<a href="#" onclick="showWindow(‘login‘, this.href); return false;">登录</a>

javascript:伪协议是人们对非标准化通信机制的统称,伪协议让我们可以通过一个链接来调用Js函数。
这种做法的不好之处在于,如果伪协议不被支持或Js被禁止了,那么这段代码就不能执行,也就没意义了。

好的写法:
<a href="member.php?mod=logging&action=login" onclick="showWindow(‘login‘, this.href); return false;">登录</a>

更好的做法是将Js代码与HTML文档分离开来。
把href属性设置为真实存在的URL地址后,即使Js被禁止或遇到爬虫,这个链接仍是可用的。

2、结构与行为分离:把网页的结构和内容与Js脚本的动作行为分开。
所谓的"循序渐进"就是用一些额外的信息层去包裹原始数据的做法。对于一个网站来说,内容就是一切,但是也不能直接将原始内容发布到网络上,而不加任何描述和修饰。
给内容加上正确的HTML标记是很重要的,也就是语义化,所以说,标记良好的内容就是一切。

还是上个案例:
html代码:
<a href="member.php?mod=logging&action=login" class="login">登录</a>

Js代码:
window.onload=function(){
var links=document.getElementsByTagName(‘a‘);
for(var i=0,len=links.length;i<len;i++){
if(‘login‘===links[i].getAttribute(‘class‘)){
links[i].onclick=function(){
showWindow(‘login‘, this.href);
return false;http://www.huiyi8.com/moban/ html模板

3、向后兼容性:确保老版本的浏览器不会因为你的Js脚本而崩溃。
一些浏览器可能无法理解DOM提供的方法和属性,那么就需要在脚本里对浏览器的Js支持程度进行检测。
这有点儿像游乐园里的警告牌:"你必须达到这一身高才能参与这项游乐活动。"换句话说,需要在Js脚本里表达出这样的含义:"你必须理解这个方法或属性,才能执行这些语句"。
一个有效的检测方法就是对象检测(object detection):把某个方法打包在一个if语句里,然后根据条件表达式的结果是true(存在)还是false(不存在),决定应该采取怎样的行动。
window.onload=function(){

if(!document.getElementsByTagName) return false;

var links=document.getElementsByTagName(‘a‘);
for(var i=0,len=links.length;i<len;i++){
if(‘login‘===links[i].getAttribute(‘class‘)){
links[i].onclick=function(){
showWindow(‘login‘, this.href);
return false;

Js编程原则和良好习惯

时间: 2024-10-08 08:07:25

Js编程原则和良好习惯的相关文章

JS编程

JS编程常识 一.UI层的松耦合 松耦合就是要求各层遵循“最少知识原则”,或者说是各层各司其职,不要越权: HTML:结构层 CSS:表现层 JS:行为层 对于各层的职能,有一句比较贴切的解释:HTML是名词(n),CSS是形容词(adj)和副词(adv),JS是动词 因为三层联系紧密,实际应用中很容易越权: 1.从css中分离js 尽量不要用css表达式,如果非要用也应该把相应的代码放在hack中,便于维护 2.从js中分离css 不要用ele.style.attr及ele.cssText,应

JS编程最佳实践

最近花了一周时间把<编写可维护的js> 阅读了一遍, 现将全书提到的JS编程最佳实践总结如下, 已追来者! 1.return 之后不可直接换行, 否则会导致ASI(自动分号插入机制)会在return 后插入一个分号. 2.一行语句最多不超过80个字符, 如果超过则应该在运算符后换行,并且追加两个缩进. 3.采用驼峰式命名,变量前缀为名词如:myName 函数应该以动词开始如:getName,常量应该以大写字母命名,如:MAX_COUNT, 构造函数首字母大写. 4.数字的写法: 整数:coun

每个程序员都必须遵守的编程原则

http://www.cocoachina.com/gamedev/misc/2014/0410/8135.html 好的编程原则跟好的系统设计原则和技术实施原则有着密切的联系.下面的这些编程原则在过去的这些年里让我成为了一名优秀的程序员,我相信,这些原则对任何一个开发人员来说,都能让他的编程能力大幅度的提高,能让他开发出可维护性更强.缺陷更少的程序. 我不要自我重复 — 这也许是在编程开发这最最基本的一个信条,就是要告诉你不要出现重复的代码.我们很多的编程结构之所以存在,就是为了帮助我们消除重

程序员应该遵守的编程原则

好的编程原则跟好的系统设计原则和技术实施原则有着密切的联系.下面的这些编程原则在过去的这些年里让我成为了一名优秀的程序员,我相信,这些原则对任何一个开发人员来说,都能让他的编程能力大幅度的提高,能让他开发出可维护性更强.缺陷更少的程序. 我不要自我重复--这也许是在编程开发这最最基本的一个信条,就是要告诉你不要出现重复的代码.我们很多的编程 结构之所以存在,就是为了帮助我们消除重复(例如,循环语句, 函数,类,等等).一旦程序里开始有重复现象的出现(例如很长的表达式.一大堆的语句,但 都是为了表

编程原则

好的编程原则跟好的系统设计原则和技术实施原则有着密切的联系.下面的这些编程原则在过去的这些年里让我成为了一名优秀的程序员,我相信,这些原则对任何一个开发人员来说,都能让他的编程能力大幅度的提高,能让他开发出可维护性更强.缺陷更少的程序. 我不要自我重复——这也许是在编程开发这最最基本的一个信条,就是要告诉你不要出现重复的代码.我们很多的编程 结构之所以存在,就是为了帮助我们消除重复(例如,循环语句, 函数,类,等等).一旦程序里开始有重复现象的出现(例如很长的表达式.一大堆的语句,但 都是为了表

JS编程常识

一.UI层的松耦合 松耦合就是要求各层遵循“最少知识原则”,或者说是各层各司其职,不要越权: HTML:结构层 CSS:表现层 JS:行为层 对于各层的职能,有一句比较贴切的解释:HTML是名词(n),CSS是形容词(adj)和副词(adv),JS是动词 因为三层联系紧密,实际应用中很容易越权: 1.从css中分离js 尽量不要用css表达式,如果非要用也应该把相应的代码放在hack中,便于维护 2.从js中分离css 不要用ele.style.attr及ele.cssText,应该用操作类名代

好的编程原则

好的编程原则跟好的系统设计原则和技术实施原则有着密切的联系. 好的编程原则 好的编程原则对任何一个开发人员来说,都能让他的编程能力大幅度的提高,能让他开发出可维护性更强.缺陷更少的程序. 不要自我重复 这也许是在编程开发里最最基本的一个信条,就是要告诉你不要出现重复的代码.我们很多的编程结构之所以存在,就是为了帮助我们消除重复(例如,循环语句, 函数,类,等等). 一旦程序里开始有重复现象的出现(例如很长的表达式.一大堆的语句,但都是为了表达相同的概念),你就需要对代码进行一次新的提炼,抽象.

shell脚本编程的一些好习惯

shell脚本编程的一些好习惯 1.命名规则 脚本命名以.sh结尾,名称尽量见名之意.以下是几种可供参考的脚本命名风格.通过以下清新脱俗的风格,读者能够很easy的明白脚本的作用.         clearlog.sh          ClearLog.sh          clearSql.sh         snmp_install.sh         Monitor.sh 2.脚本信息 为脚本加入生动的信息,比如脚本功能的描述,作者,时间,版本信息等.     #!/bin/ba

谷歌大牛 Rob Pike 的 5 个编程原则

谷歌大牛 Rob Pike 的 5 个编程原则 简介: Rob Pike,目前谷歌公司最著名的软件工程师之一,曾是贝尔实验室Unix开发团队成员,Plan9操作系统开发的主要领导人,Inferno操作系统开发的主要领导人.他是缔造Go语言和Limbo语言的核心人物.下面是他分享给大家他在贝尔实验室工作的一段经历,这段经历改变了他对bug调试的思想认识. 主要工作经历: 我在贝尔实验室工作了很多年.我在计算机科学研究中心,你会很诧异,这是个很小的实验室,但这里却创造了Unix,我来到这里工作的时候