javascript代码的优化使用:
+-------------------------------------------------------------------------------------+
1.js是一种灵活的语言,一千个人会有一千种的js书写方式.这个你的团队再次开发有很多的困难.个人认为有很好的书写规范是首当其冲的.
2.参考了很多优秀的代码规范以后,总结了如下几点:

命名规范:
变量名包括全局变量,局部变量,类变量,函数参数等等,他们都属于这一类.
变量命名都以类型前缀+有意义的单词组成,用驼峰法命名法来增加变量和函式的可读性.例如,sUserName,nCount.

每一个局部变量都要有一个类型的前缀,按照类型分为:

s:表示字符串,例如sName,sHtml
n:表示数字.例如:nPage,nTotal
b:表示逻辑,例如bChecked,bHasLogin
a:表示数组,例如sList,aGroup
r:表示正则表达式,rDomain,rEmail
f:表示函数,例如fGetHtml,finit
o:表示以上未涉及的其他对象,例如oButton,oDate
g:表示全局变量,例如:gUserName,gLoginTime

当然我们也可以自己使用自己的规范:

$:表示jQuery对象,例如:$Content,$Module
一种比较规范的Jquery对象变量命名规范
j:表示jquery对象,例如:jContent,jModule
另外一种jquery对象变量命名方式.
fn:表示函数,例如fnGetName,fnSetAge
和上面函数的前缀略有不同,改用fn来代替,个人认为fn能够够好的区分普通变量和函数变量.
dom:表示dom对象,例如domForm,domInput
项目中有很多地方会用原生的Dom方法以及属性,可以根据团队需要适当修改.

这里可以根据项目团队需要,设计出针对项目需要的前缀规范,从而达到团队开发协作便利的目的.
例外情况:
1.作用域不大临时变量:比如str,num,bol,obj,fun,arr
2.循环变量可以简写,比如i,j,k等
3.某些作为不允许修改值的变量认为是常量,全部字母都大写,比如COPYRIGHT,PI,常量可以存于函数中,也可以存在于全局.
之所以定义变量前缀是因为js是弱类型语言造成的,在定义大量变量的时候,我们很需要知道当前变量是干什么的!如果不这样,我们就很难区分.

[url=" style=]复制代码[/url][url=" style=]运行代码[url="style=]编辑代码[/url]

//普通代码
var checked=false;
var check=function(){
return true;
}
/**
some code
**/

if(check){
//已经无法很确切知道这里是用checked还是check()从而导致逻辑错误
//do some thing
}

//规范后代码
var bChecked=false;
var fnCheck=function(){
return true;
}
/**
some code
**/
if(bChecked){
//do some thing
}
if(fnCheck()){
//do other thing
}
+-------------------------------------------------------------------------------------+
函数命名:
统一使用动词或者动词+名词形式,例如fnGetVersion(),fnSubmitForm(),fninit();涉及返回逻辑值的函数可以使用is,has,contains等表示逻辑的动词代替动词,例如:fnlsObject(),fnHasClass(),fnContainsElement().

如果有内部函数,使用_fn+动词+名词形式,内部函数必需在函数最后定义.例如:
function fnGetNumber(nTotal){
if(nTotal<100){
nTotal=100;
}
return _fnAdd(nTotal);

function _fnAdd(nNumber){
nNumber++;
return nNumber;
}
}
alert(fGetNumber(10));//alert 101;
+-------------------------------------------------------------------------------------+
对象方法和事件函数响应函数
对象方法命名使用fn+对象类名+动词+名次形式.例如fnAddressGetEmail(),主管觉得加上对象类名有些鸡肋.个人认为一个对象的公开的属性和方法应当做到简洁易读.多增加一个对象类名单词,看着统一了,但有点为了规范而规范的味道.

某事件为响应函数命名方式为fn+触发事件对象名+事件名字或者模块名,例如fnDivClick(),fnAddressSubmitButtonClick()

补充一些函数方法常用的动词:
get:获得set设置,
add:增加
remove:删除
create创建
close关闭
start启动
stop停止
read读取
write写入
load载入
save保存
create创建
destroy销毁
begin开始
end结束
backup备份
restore恢复
import导入
export导出
split分割
merge合并
inject注入
separate提取
attach附着
detach脱离
bind绑定
separate分离
view查看
browser浏览
edit编辑
modify修改
select选取
mark标记
copy复制
paste粘贴

转载于:https://www.cnblogs.com/sgsheg/archive/2012/09/27/2705745.html

javascritp笔记1相关推荐

  1. HTML,CSS,JavaScript学习笔记--导航

    陆陆续续花了一个月的时间,把前端三大件HTML,CSS,JavaScript的基本语法学完了,感觉还是收益颇丰的.但是其中的知识远远不止这些,以后学习的过程中在进行补充吧. HTML,CSS学习笔记 ...

  2. [学习笔记] Cordova+AmazeUI+React 做个通讯录 - 使用 SQLite

    [学习笔记] Cordova+AmazeUI+React 做个通讯录 系列文章 目录 准备 联系人列表(1) 联系人列表(2) 联系人详情 单页应用 (With Router) 使用 SQLite 传 ...

  3. 《现代前端技术解析》第4-5章 阅读笔记

    第四章 现代前端交互框架 (需要进行理解,再完善笔记) ​ 数据的处理和操作的核心就是DOM的处理和操作,即便是今天,所有前端JavaScript框架最终要解决的仍然是如何实现高效,高性能DOM交互操 ...

  4. 【读书笔记】知易行难,多实践

    前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...

  5. 【运维学习笔记】生命不息,搞事开始。。。

    001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...

  6. SSAN 关系抽取 论文笔记

    20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...

  7. pandas以前笔记

    # -*- coding: utf-8 -*- """ Created on Sat Jul 21 20:06:20 2018@author: heimi "& ...

  8. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  9. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

最新文章

  1. app让个别界面横屏,其他的为竖屏,解决如下
  2. Dijkstra的理解和实现
  3. 分享一张前端知识点思维导图
  4. 在linux中显示所有正在运行的进程
  5. php 跟踪邮件,php – 电子邮件跟踪 – GMail
  6. java8 lambda this_java8里lambda里的 this 为什么会指向 lamdba 所在的外部类
  7. 【重识 HTML + CSS】网页基础知识、基本 HTML 标签
  8. 认识三大方便的开源 Linux 防火墙生成器
  9. 如何用虚拟机安装服务器系统教程,手把手教你虚拟机如何安装系统
  10. 基于分布式光纤传感的高压电力线路异常监测探讨
  11. 【渝粤教育】电大中专电商运营实操 作业 题库
  12. Amaze UI貌似挂了。。。附上amaze UI框架的图标
  13. deepin升级Linux内核,深度 deepin 20.1 (1005)系统开启内测:升级至 Linux Kernel 5.8 稳定内核...
  14. 【题解】LuoGu1512:伊甸园日历游戏
  15. 中概股的「劫难」、美团的「回头草」以及你价值「2000 元」的脸|极客一周...
  16. 王之泰201771010131《面向对象程序设计(java)》第八周学习总结
  17. 路由2台,二层交换机4台,三层1台,实现网络互联
  18. 基于jQuery发射弹幕的一个小案例
  19. 魔兽电影这么火,做成游戏一定很多人玩吧
  20. 远程辅助必备免费神器ToDesk远程控制软件(答辩,远程,调试,办公)必备远程工具

热门文章

  1. android MIPI屏 导航栏丢失
  2. Nokia House”或“NoHo
  3. e-cology在保险行业——泛微保险行业解决方案
  4. 分布式文件系统MooseFS初探
  5. IT民工系列——c#操作Microsoft IE,实现自动登录吧!
  6. linux查看根目录使用率,Linux 查看空间使用情况的实例详解
  7. 设计模式 — 行为型模式 — 责任链模式
  8. Tungsten Fabric SDN — VNC API — API Client 的 Python SDK
  9. AWS — AWS 上的 5G 网络
  10. 用 Flask 来写个轻博客 (10) — M(V)C_Jinja 常用过滤器与 Flask 特殊变量及方法