作为前端程序员,一定要认清javascript的地位,不要被它乱七八糟的特点所迷惑。JavaScript主要是用来操控和重新调整DOM,通过修改DOM结构,从而达到修改页面效果的目的。

要用这个中心思想指导以后的所有js学习,包括它的框架。

所谓合理就是合乎道理。那么合理的javascript代码通常遵循哪些原则?笔者认为至少要遵循以下几点:

有意义的命名

无论选择驼峰命名法还是匈牙利命名法,见名知意是最重要也最基本的一条法则。同时也要避免会产生歧义的命名。

例如 变量“当前时间”

var d;不好的命名

var currentTime 好的命名

每一个函数只干一件事

每个函数只干一件事就是避免把所有业务逻辑都放在同一个函数中完成,这样的好处是代码更为简洁,可读性提高,易于维护及复用。

合理的传参

举个简单的例子:

好的传参

funcation  queryStudent(Json student){

……………….

}

不好的传参

funcation  queryStudent(id,name,…){

……………….

}

合理的DOM

合理的

var  phaseObject =

{

northLeftPhase = document.getElementById('northLeftPhase')

}

phaseObject.northLeftPhase.src='http://phase.com/n/left.png';

不合理的

document.getElementByID('northLeftPhase').src = 'http://phase.com/n/left.png';

合理的注释

语言精练,使用规范的注释模式,防止多意义,常更新。

原则,并不是所有的变量函数都需要注释,一般注释哪些比较生涩的算法。

精练的注释

//Selector the Elements

var  findElements = window. findElements = function( exp ){ ....................... }

不精练的注释

//Selector the Elements by GetElementById & getElementsByTagN ....

Var findElements = window. findElements = function( exp ){ ....................... }

注释 != 字幕

好的

// find [ID = A]

var oA = document.getElementById('A');

不好的

/*Found through the document.getElementByID*/

var oA = document.getElementById('A');

合理的排版

缩进排版(Indentation)

4个空格常被作为缩进排版的一个单位。缩进的确切解释并未详细指定(空格 vs. 制表符)。一个制表符等于n个空格(视具体的编辑器而定,Eclipse默认一个制表符为4个字符)。

行长度(Line Length)

尽量避免一行的长度超过80个字符,因为很多终端和工具不能很好处理之。

注意:鉴于Eclipse开发工具工作区的左侧和右侧都被非代码编辑器所占据,因此建议每行的代码长度不要超过70个字符。

换行(Wrapping Lines)

当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之:

·在一个逗号后面断开;

·在一个操作符前面断开;

·宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开;

·新的一行应该与上一行同一级别表达式的开头处对齐。

模块化编程

便于管理;

提高开发效率;

减少错改代码的次数;

易于维护;

提高代码可读性;

易于构建大型项目。

认清Javascript的地位并编写合理的Javascript代码的更多相关文章

  1. JavaScript手札:《编写高质量JS代码的68个有效方法》(一)(1~5)

    编写高质量JS代码的68个有效方法(一) *:first-child { margin-top: 0 !important; } body>*:last-child { margin-botto ...

  2. 编写高效的JavaScript

    Web前端性能优化——编写高效的JavaScript   前言 随着计算机的发展,Web富应用时代的到来,Web 2.0早已不再是用div+css高质量还原设计的时代.自Gmail网页版邮件服务的问世 ...

  3. 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点

    深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 2011-12-28 23:00 by 汤姆大叔, 139489 阅读, 119 评论, 收藏, 编辑 才华横溢的 ...

  4. 编写高质量JavaScript代码绳之以法(The Essentials of Writing High Quality JavaScript)翻译

    原文:The Essentials of Writing High Quality JavaScript 才华横溢的Stoyan Stefanov,在他写的由O'Reilly初版的新书<Java ...

  5. 编写高质量JavaScript代码的基本要点记录

    原文:深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 1.最小全局变量(Minimizing Globals)的重要性 JavaScript通过函数管理作用域.在 ...

  6. 编写高质量JavaScript代码的68个有效方法

    简介: <Effective JavaScript:编写高质量JavaScript代码的68个有效方法>共分为7章,分别涵盖JavaScript的不同主题.第1章主要讲述最基本的主题,如版 ...

  7. 编写高效的JavaScript程序

    作者: Addy Osmani  来源: CSDN  发布时间: 2013-01-10 14:15  阅读: 7952 次  推荐: 15   原文链接   [收藏] 英文原文:Writing Fas ...

  8. 编写第一个JavaScript程序

    编写第一个程序 在 HTML 页面中嵌入 JavaScript 脚本需要使用 <script> 标签,用户可以在 <script> 标签中直接编写 JavaScript 代码, ...

  9. 如何编写高质量JavaScript代码

    书写可维护的代码(Writing Maintainable Code ) 软件bug的修复是昂贵的,并且随着时间的推移,这些bug的成本也会增加,尤其当这些bug潜伏并慢慢出现在已经发布的软件中时.当 ...

随机推荐

  1. 史上最易懂——ReactNative分组列表SectionList使用详情及示例详解

    React Native系列 <逻辑性最强的React Native环境搭建与调试> <ReactNative开发工具有这一篇足矣> <解决React Native un ...

  2. Spring mybatis源码篇章-MybatisDAO文件解析(一)

    前言:通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-SqlSessionFactory 加载指定的mybatis主文件 Mybatis模板文件,其中的属性 ...

  3. HDOJ2008-数值统计

    Problem Description 统计给定的n个数中,负数.零和正数的个数.   Input 输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然 ...

  4. PowerShell 脚本中的密码

    引言 笔者在<PowerShell 远程执行任务>一文中提到了在脚本中使用用户名和密码的基本方式: $Username = 'xxxx' $Password = 'yyyy' $Pass ...

  5. python 密码学编程 -- 2

    接上一篇随笔 ******************************************************************** * quote : "http://i ...

  6. git版本控制 for window安装和命令行使用

    Git 安装配置 Windows 平台上安装 在 Windows 平台上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行 ...

  7. 用Python处理实验数据

    开篇语 近来忙于考试以及应付专业课,基本很少写简书了.昨晚攻坚了三个学生工作的任务(妈妈的吻.好久没有这么疯狂工作了.还是很爽的哦!) 今天难得清静,虽然上课还是沉浸于完成任务的放纵式玩手机中,但是也 ...

  8. android四大组件学习总结以及各个组件示例(2)

    上篇博文讲解了activity.content provider,此篇博文来仔细总结service.broadcast receiver: 3. Service >什么是服务?>windo ...

  9. MySQL的MySQL 的JDBC的安装与使用

    1.配置好环境,主要是安装mysql和下载连接需要的包(我用的是mysql-connector-java-5.1.3-rc-bin.jar) 2.注册驱动  Class.forName("c ...

  10. angular学习(五)-- Module

    1.5 模块:Module 模块定义了一个应用程序 模块是应用程序中不同部分的容器 模块是应用控制器的容器 控制器通常属于一个模块 ng 中模块的引入最重要的目的就是为了解决原来全局定义的控制器污染的 ...