超全面的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 相关文章推荐
利用js的Node遍历找到repeater的一个字段实例介绍
Apr 25 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
Mar 10 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
Apr 21 Javascript
使用jQuery判断浏览器滚动条位置的方法
May 30 Javascript
Javascript实现图片懒加载插件的方法
Oct 20 Javascript
javascript实现简单的可随机变色网页计算器示例
Dec 30 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
Aug 17 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
May 14 jQuery
Node 搭建一个静态资源服务器的实现
May 20 Javascript
vue-router二级导航切换路由及高亮显示的实现方法
Jul 10 Javascript
javascript实现超好看的3D烟花特效
Jan 01 Javascript
element中Steps步骤条和Tabs标签页关联的解决
Dec 08 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
批量修改RAR文件注释的php代码
2010/11/20 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
2013/07/03 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
Zend Framework教程之Zend_Registry对象用法分析
2016/03/22 PHP
PHP使用数组实现矩阵数学运算的方法示例
2017/05/29 PHP
PHP操作Redis数据库常用方法示例
2018/08/25 PHP
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
javascript验证内容为数字以及长度为10的简单实例
2016/08/20 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
简单谈谈axios中的get,post方法
2017/06/25 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
vue使用Font Awesome的方法步骤
2019/02/26 Javascript
VUE实现图片验证码功能
2020/11/18 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
[50:20]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第四局
2016/03/06 DOTA
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
Python基于回溯法子集树模板解决全排列问题示例
2017/09/07 Python
Python爬虫设置代理IP的方法(爬虫技巧)
2018/03/04 Python
Python unittest 简单实现参数化的方法
2018/11/30 Python
Python json转字典字符方法实例解析
2020/04/13 Python
使用TensorBoard进行超参数优化的实现
2020/07/06 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
物业管理毕业生个人的求职信
2013/11/30 职场文书
中学自我评价
2014/01/31 职场文书
电话客服工作职责
2014/07/27 职场文书
见习报告格式范文
2014/11/08 职场文书
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python
手把手教你使用TensorFlow2实现RNN
2021/07/15 Python