超全面的javascript中变量命名规则


Posted in Javascript onFebruary 09, 2017

前言

变量的命名相对而言没有太多的技术含量,今天整理有关于变量命名相关的规则,主要是想告诉大家,虽然命名没有技术含量,但对于个人编码,或者说一个团队的再次开发及阅读是相当有用的。良好的书写规范可以让你的JavaScript代码更上一个台阶,也更有利于团队的再次开发和阅读代码。

全名原则

  1. 变量名区分大小写,允许包含字母、数字、美元符号($)和下划线,但第一个字符不允许是数字,不允许包含空格和其他标点符号
  2. 变量命名长度应该尽可能的短,并抓住要点,尽量在变量名中体现出值的类型
  3. 尽量避免使用没有意义的命名
  4. 禁止使用JavaScript关键词、保留字全名
  5. 变量名命名方法常见的有匈牙利命名法、驼峰命名法和帕斯卡命名法

匈牙利命名法

匈牙利命名法匈牙利命名法是电脑程序设计中的一种变量命名规则,此命名法又可细分为:系统匈牙利命名法和匈牙利应用命名法。

匈牙利命名法具备语言独立的特性,并且首次在BCPL语言中被大量使用。由于BCPL只有机器字这一种数据类型,因此这种语言本身无法帮助程序员来记住变量的类型。匈牙利命名法通过明确每个变量的数据类型来解决这个问题。

在匈牙利命名法中,一个变量名由一个或多个小写字母开始,这些字母有助于记忆变量的类型和用途,紧跟着的就是程序员选择的任何名称。这个后半部分的首字母可以大写,以区别前面的类型指示字母。

语法

变量名 = 类型 + 对象描述

  1. 类型指变量的类型
  2. 对象描述指对象名字全称或名字的一部分,要求有明确含义,命名要容易记忆容易理解。

通过在变量名前面添加相应小写字母的符号标示作为前缀,标示出变量的类型,前缀后面是一个或多个单词组合,单词描述了变量的用途。如果是 jquery 对象,则用 $ 作为变量名的前缀。

提示

虽然 javascript 变量表面上没有类型,但是 javascript 内部还是会为变量赋予相应的类型。

匈牙利命名法是一位微软程序员发明的,多数的 c,c++ 程序都使用此命名法。

类型

javascript 变量命名类型 变量命名前缀
array 数组 a
boolean 布尔值 b
float 浮点数 l
function 函数 fn
int 整型 i
object 对象 o
regular 正则 r
string 字符串 s

示例

var aName = [1, 2, 3];
var oBtn = document.getElementById('btn');
function fnName(){};
var iCount = 0;
var sName = "zhuyujia";

驼峰式命名法

当变量名和函数名称是由二个或多个单字链接在一起,而构成的唯一识别字时,利用“驼峰式大小写”来表示,可以增加变量和函数的可读性。

“驼峰式大小写(Camel-Case)一词来自Perl语言中普遍使用的大小写混合格式,而Larry Wall等人所著的畅销书《Programming Perl》(O'Reilly出版)的封面图片正是一匹骆驼。”

“驼峰式大小写”命名规则可视为一种惯例,并无绝对与强制,为的是增加识别和可读性。一旦选用或设置好命名规则,在程序编写时应保持一致格式。

语法

变量名或函数名是由一个或多个单词连结在一起,其中第一个单词以小写字母开始,后面的所有单词的首字母都采用大写字母,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。

示例

var myName = "zhuyujia";
var formSubmit = document.getElementById("submit");
function timeCount(){}

帕斯卡命名法

Pascal命名法(Pascal Case,巴斯卡命名法/帕斯卡命名法),电脑程序编写时的一套命名规则(惯例)。

当变量名和函数名称是由二个或二个以上单字链接在一起,而构成的唯一识别字时,用以增加变量和函数的可读性。

单字之间不以空格断开或连接号(-)、下划线(_)链接,第一个单前缀字母采用大写字母;后续单字的首字母亦用大写字母,例如:FirstName、LastName。每一个单字的首字母都采用大写字母的命名格式,被称为“Pascal命名法”,源自于Pascal语言的命名惯例,也有人称之为“大驼峰式命名法”(Upper Camel Case),为驼峰式大小写的子集。

“Pascal命名法”可视为一种命名惯例,并无绝对与强制,为的是增加识别和可读性。一旦选用或设置好命名规则,在程序编写时应保持格式的一致性。

语法

和驼峰式命名法类似,只不过第一个单词的首字母需要大写。

示例

var MyName = "zhuyujia";
var FormSubmit = document.getElementById("submit");
function TimeCount(){}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
JQuery 实现的页面滚动时浮动窗口控件
Jul 10 Javascript
js弹窗代码 可以指定弹出间隔
Jul 03 Javascript
深入理解javascript中的立即执行函数(function(){…})()
Jun 12 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
Dec 19 Javascript
AngularJs上传前预览图片的实例代码
Jan 20 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
May 09 jQuery
vue+springmvc导出excel数据的实现代码
Jun 27 Javascript
小程序图片剪裁加旋转的示例代码
Jul 10 Javascript
Vue中遍历数组的新方法实例详解
Jul 21 Javascript
详解vue3.0 diff算法的使用(超详细)
Jul 01 Javascript
Javascript基于OOP实实现探测器功能代码实例
Aug 26 Javascript
JavaScript中如何调用Java方法
Sep 16 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
Feb 09 #Javascript
bootstrapValidator.min.js表单验证插件
Feb 09 #Javascript
js 原型对象和原型链理解
Feb 09 #Javascript
AngularJs表单校验功能实例代码
Feb 09 #Javascript
javascript 显示全局变量与隐式全局变量的区别
Feb 09 #Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
Feb 09 #Javascript
简单谈谈Javascript函数中的arguments
Feb 09 #Javascript
You might like
利用PHP实现智能文件类型检测的实现代码
2011/08/02 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
直接生成打开窗口代码,不必下载
2008/05/14 Javascript
JavaScript setTimeout和setInterval的使用方法 说明
2010/03/25 Javascript
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
dotopAlert 提示用户需安装播放器的代码
2012/09/17 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
基于JavaScript实现幸运抽奖页面
2020/07/05 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
React 父子组件通信的实现方法
2019/12/05 Javascript
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
Python合并多个装饰器小技巧
2015/04/28 Python
Python网站验证码识别
2016/01/25 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
python的中异常处理机制
2018/08/30 Python
Python DataFrame.groupby()聚合函数,分组级运算
2018/09/18 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
详解python 爬取12306验证码
2019/05/10 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
2019/08/26 Python
python命令 -u参数用法解析
2019/10/24 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
英智兴达软件测试笔试题
2016/10/12 面试题
企事业单位求职者的自我评价
2013/12/28 职场文书
三下乡活动方案
2014/01/31 职场文书
初中三年毕业生的自我评价分享
2014/02/14 职场文书
全国文明单位申报材料
2014/05/31 职场文书
医院合作协议书
2014/08/19 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
战友聚会致辞
2015/07/28 职场文书
nginx 防盗链防爬虫配置详解
2021/03/31 Servers
基于Redis延迟队列的实现代码
2021/05/13 Redis