超全面的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 相关文章推荐
javascript 写类方式之四
Jul 05 Javascript
jQuery中live方法的重复绑定说明
Oct 21 Javascript
bootstrap实现每隔5秒自动轮播效果
Dec 20 Javascript
angular ng-repeat数组中的数组实例
Feb 18 Javascript
vue.js事件处理器是什么
Mar 20 Javascript
vue拦截器Vue.http.interceptors.push使用详解
Apr 22 Javascript
使用Math.max,Math.min获取数组中的最值实例
Apr 25 Javascript
js 倒计时(高效率服务器时间同步)
Sep 12 Javascript
AngularJS自定义过滤器用法经典实例总结
May 17 Javascript
vue中的v-if和v-show的区别详解
Sep 01 Javascript
vue 解决computed修改data数据的问题
Nov 06 Javascript
vue插槽slot的简单理解与用法实例分析
Mar 14 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
文章推荐系统(三)
2006/10/09 PHP
Ajax PHP分页演示
2007/01/02 PHP
使ecshop模板中可引用常量的实现方法
2011/06/02 PHP
Linux下安装PHP MSSQL扩展教程
2014/10/24 PHP
PHP 二维数组和三维数组的过滤
2016/03/16 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
PHP批斗大会之缺失的异常详解
2019/07/09 PHP
ThinkPHP 5.1 跨域配置方法
2019/10/11 PHP
javascript 检测浏览器类型和版本的代码
2009/09/15 Javascript
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
15 个 JavaScript Web UI 库
2010/05/19 Javascript
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
JS实现一键回顶功能示例代码
2013/10/28 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
javascript引用类型指针的工作方式
2015/04/13 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
2016/01/05 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
jQuery实现简易聊天框
2020/02/08 jQuery
[03:24][TI9纪实] Dota奶爸
2019/08/22 DOTA
跟老齐学Python之Import 模块
2014/10/13 Python
Python批量转换文件编码格式
2015/05/17 Python
python获取文件扩展名的方法
2015/07/06 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
python实现黑客字幕雨效果
2018/06/21 Python
Python selenium根据class定位页面元素的方法
2019/02/26 Python
Python处理session的方法整理
2019/08/29 Python
大数据分析用java还是Python
2020/07/06 Python
Python list和str互转的实现示例
2020/11/16 Python
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
印度服装购物网站:Limeroad
2018/09/26 全球购物
中学生自我评价范文
2014/02/08 职场文书
大学体育课感想
2015/08/10 职场文书