前端的进阶其实和如何使用规范是完全相关的。

新手: 啊,什么,这有规范吗? 我不会诶
进阶: 恩,每次,这里需要加分号。 这个逗号应该放这里...
大神: 啊,前端有规范吗? 这里需要放分号,那里不需要放分号。 这里可以不大写,我偏大写。

总结起来整个流程就是:无规范 -> 有规范 -> 无规范。

所以,这里我们来谈一谈规范在前端的意义吧。由于,本人纯属小白,所以,咱不装逼,我们谈谈有规范的那一块。%>_<%

其实前端规范,就这几个,命名,分隔符,缩进等。

分号

这个应该算是我们最常见的,但是也是坑最多的一个。即,每条语句结尾都需要加分号.

我们来看个例子:

var a = 2
2
console.log(a);  //2

本来我们想要的结果应该是a=22,但是现实往往是不要脸的。他的结果是2。

为什么呢? 为什么呢? 为什么呢?

我们来看一下ECMA的对此的解释。

我们只在看起来像是一条语句的后面加上分号表示一句

实际上其实是这样的:

var a = 2;
2;

所以,一条语句写完之后别手贱 换行,因为你不知道你正在做一件十分 keai的事,而且每条语句最好都加上分号,至少不会出错。

好吧,还说服不了你的话。我们来看一个经典的问题

;(function(){
    // ...
})();

如果 你看过一些插件的话,应该会发现这个普遍的现象。

为什么呢? 为什么呢? 为什么呢?

为了防止出Bug呀。。。 艹
咳咳~ 开玩笑,

举个实例吧。

var speak = function(para){console.log(para); return "speak is "+para;}
("I want to Speak").toString();
console.log(speak);

如果看代码的话,应该能读懂我的意图吧? 但是,js解释器,从不给你解释的机会。

上面代码的结果是:

I want to Speak
speak is I want to Speak

我真*了狗。第一个I want to Speak 是函数表达式里面的console.log(para)里面的。第二个 "speak is I want to Speak" 就是console.log(speak)里面的内容了。

总结一下,原因,我们最怕遇见这种情况,在函数后面使用"()"就相当于调用该函数并且传入参数,所以上面执行情况是。

var speak = function(para){console.log(para); return "speak is "+para}("I want to Seapk").toString();
//首先获得函数表达式的执行结果.
function(para){console.log(para); return "speak is "+para}("I want to Seapk")
//然后将结果内容toString,返回给speak
speak = xxx.toString();  //返回的结果

所以,懂了吧, 一些插件之所以要在IIFE前面加上";"就是这个道理。 加分号的时候,我们一定要不怕苦,不怕累,就怕出bug。

命名

普遍而言,我们最常使用的就是两种方法。

  1. 给类命名(原谅我说类)--使用首字母大写的camel式

    var person = new People();  //People就是使用首字母大写的camel式
  2. 给变量命名--使用首字母小写的camel式

    var myBook = new Books();  //myBook就是采用变量名的命名

当然,这个只是命名的简单两种方法,也是广为接受的。另外,还有一个名叫"BEM"的命令规范,不过他主要正对于css的命名。如果感兴趣的同学可以了解一下: 传送门

注释

感觉在js里面真的是弱化了注释的效果, 从以前几十行代码就可以写完的一个js,到现在的大型webApp,单页应用,你再写30+的js试一试。 所以,可能是被遗传了吧,我大部分的朋友都不喜欢写注释,但这里真的希望大家在写代码的时候一定要多写注释。 坊间有个不成文的规定,如果你的注释不占你程序的2/3的话,你这个程序won't pass. 同时,写注释也是给你的接手人,一个很好的指导意义。

通常我们写注释可以直接使用快捷键:

//windows
ctrl+/
//MAC
command+/

这样方便,易记。

我们来说说那些地方需要使用注释。

文件开头:一个main.js的开头需要使用注释,来说明你js文件的相关信息,以及功能描述。通常是:

 /**
 * @author jimmy
 * @file Image.js
 * @description 功能详细描述
 */

重要函数:给你的函数加上一些基本描述是很有必要的。通常有功能,参数效果,是否有返回值。

/**
 * 简述
 *
 * 功能详细描述
 *
 * @param <String> arg1 参数1
 * @param <Number> arg2 参数2,默认为0
 * @return <Boolean> 看xxx是否成功
 */
 
 function doSth (arg1, arg2) {
 }

重要语句:其实js程序里面,要么不是函数,要么就是单语句。关于语句的注释应该没什么说的。 就是在每行语句上,加上一条注释,可以不用上面这么复杂的,直接使用command + /即可。

//是否登录
var isOk = isLogin?true:false;

OK,注释差不多就是这几个部分。

另外,js规范当然还有很多,比如缩进,空格,逗号等。,(艹)

宝宝不想说啦。 其实这些规范你使用code pretty一下就好看了。如果你使用sublime 你可以下一个package HTML pretty 等相关的代码美化插件。都是可以的。


villainhr
7.8k 声望2.2k 粉丝

« 上一篇
git分支进阶
下一篇 »
探知JS测试(1)