资讯专栏INFORMATION COLUMN

随便说说规范

XboxYan / 1425人阅读

摘要:前端的进阶其实和如何使用规范是完全相关的。总结起来整个流程就是无规范有规范无规范。另外,还有一个名叫的命令规范,不过他主要正对于的命名。我们来说说那些地方需要使用注释。另外,规范当然还有很多,比如缩进,空格,逗号等。

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

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

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

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

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

分号

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

我们来看个例子:

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。

命名

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

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

var person = new People();  //People就是使用首字母大写的camel式

给变量命名--使用首字母小写的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  arg1 参数1
 * @param  arg2 参数2,默认为0
 * @return  看xxx是否成功
 */
 
 function doSth (arg1, arg2) {
 }

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

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

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

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/78635.html

相关文章

  • 一篇文章带你尝试拿下js异步

    摘要:单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。这决定了它只能是单线程,否则会带来很复杂的同步问题。小结本身是单线程的,并没有异步的特性。当异步函数执行时,回调函数会被压入这个队列。 走在前端的大道上 本篇将自己读过的相关 js异步 的文章中,对自己有启发的章节片段总结在这(会对原文进行删改),会不断丰富提炼总结更新。 概念 JS 是单线程的语言。 单线程就意味着...

    MartinDai 评论0 收藏0
  • 探讨一下Vue和以前的jquery开发的区别

    摘要:我是一名光荣的前端工程师,一直从事前端的开发工作。但是开发是前后端分离开发,通过进行交互,客户端请求服务器返回数据,由客户端进行渲染。因为前端代码和后台代码都是分开的,所以项目更容易维护,开发效率更高。 我是一名光荣的前端工程师,一直从事web前端的开发工作。当时可以说是零基础入门,之前因为前端的html、css、js比较好学,所以也愚蠢的认为web前端很简单,很没有技术含量。当然不仅...

    galois 评论0 收藏0
  • 探讨一下Vue和以前的jquery开发的区别

    摘要:我是一名光荣的前端工程师,一直从事前端的开发工作。但是开发是前后端分离开发,通过进行交互,客户端请求服务器返回数据,由客户端进行渲染。因为前端代码和后台代码都是分开的,所以项目更容易维护,开发效率更高。 我是一名光荣的前端工程师,一直从事web前端的开发工作。当时可以说是零基础入门,之前因为前端的html、css、js比较好学,所以也愚蠢的认为web前端很简单,很没有技术含量。当然不仅...

    wean 评论0 收藏0
  • 开工大吉!简单的说说公司的开发规范

    摘要:大家好,好久没有写公众号了,最近有朋友参加面试被问到开发规范的问题,突然发现每天干着工作,却没有关注这个问题,就想着写篇文章,简单的说下自己公司的开发规范。 大家好,好久没有写公众号了,最近有朋友参加面试被问到开发规范的问题,突然发现每天干着工作,却没有关注这个问题,就想着写篇文章,简单的说下自己公司的开发规范。 showImg(https://segmentfault.com/img...

    edagarli 评论0 收藏0

发表评论

0条评论

XboxYan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<