小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
前言
我相信每一个程序员都需要给变量、属性或函数命名(屁话); 我也相信我们会在我们的工作生涯中总会遇到一些问题,例如在维护同时的代码的时候,他写了这样的一行代码
var test1 = 1
var test2 = 2
function pin(){
.....
}
这个时候我就很头痛,pin这个方法是做什么的? test1这个变量干吗用的? test2呢?
- 没有任何的注释
- 这个命名也不语义化
我也相信大家应该大骂过这样的同事....
诚然,Js的命名可以以下划线( _ )或者美元符号( $ ) 开头或者结尾,还能用数字结尾,但是我认为不应该这样去做命名,我们就应该做到正确的命名.
错误的命名方式
-
下划线( _ ) 开头或结尾通常是为了表示私有属性或者全局变量;所以挂在开头或是结尾的下划线是一个程序员很不成熟的现象
-
美元符号( $ ) 一般是代码生成器、转译器和宏处理器加到变量里的,为了不和人工编写的变量不会起代码冲突;为了证明你不是一个机器人,离这个符号远一点吧
-
数字结尾 这个一般就是程序员脑子一团浆糊不知道该怎么命名的时候常用的吧???? 哈哈哈
我的命名规范
一个变量可以由多个单词组成,如何组织这些个单词就是一个问题,有的人推荐驼峰,有的人推荐单词之间用下划线进行分割;我个人的的话是这样使用的
项目命名:
全小写+下划线(my_project)
目录:
全小写(contents)
文件:
驼峰(contentsDocument.vue)
js命名规范:
常量: 全大写+下划线(MY_CONST)
变量: 驼峰(myValue)
方法: 驼峰(myFunction)
**css(class、id)命名规则BEM**
css常用的BEM模式
class命名使用BEM其实是块(block)、元素(element)、修饰符(modifier)的缩写
,利用不同的区块,功能以及样式来给元素命名。
原书的内容
我感觉很触动我,这话说的我很触动
所有的构造函数都应该以大写字母开头,而其他的任何名字都应该以小写字母开头....
我其实还有一个诀窍:从不用new。如此一来,我甚至可以再也不用以大写字母开头去命名函数了.我推荐你也这么做,因为这个世界上每天都有成堆使用new的触笔代码出现,简直可怕。
保留字
JavaScript 保留关键字不可以用作变量、标签或者函数名。有些保留关键字是作为 Javascript 以后扩展使用。
| abstract | arguments | boolean | break | byte |
|---|---|---|---|---|
| case | catch | char | class* | const |
| continue | debugger | default | delete | do |
| double | else | enum* | eval | export* |
| extends* | false | final | finally | float |
| for | function | goto | if | implements |
| import* | in | instanceof | int | interface |
| let | long | native | new | null |
| package | private | protected | public | return |
| short | static | super* | switch | synchronized |
| this | throw | throws | transient | true |
| try | typeof | var | void | volatile |
| while | with | yield |
- 标记的关键字是 ECMAScript5 中新添加的。
记住上面的值,这是基础中的基础.以上任意单词都不能做变量名或者参数名
Js对于保留字的规则还是很复杂的,在一些特殊情况下,一些单词还是可以使用的,但是还是那句话,不要做奇怪的尝试, no zuo no die why you try
扪心自问这些保留字这么多我是记不住这些保留字的....尴尬