摘要:前端的进阶其实和如何使用规范是完全相关的。总结起来整个流程就是无规范有规范无规范。另外,还有一个名叫的命令规范,不过他主要正对于的命名。我们来说说那些地方需要使用注释。另外,规范当然还有很多,比如缩进,空格,逗号等。
前端的进阶其实和如何使用规范是完全相关的。
新手: 啊,什么,这有规范吗? 我不会诶 进阶: 恩,每次,这里需要加分号。 这个逗号应该放这里... 大神: 啊,前端有规范吗? 这里需要放分号,那里不需要放分号。 这里可以不大写,我偏大写。
总结起来整个流程就是:无规范 -> 有规范 -> 无规范。
所以,这里我们来谈一谈规范在前端的意义吧。由于,本人纯属小白,所以,咱不装逼,我们谈谈有规范的那一块。%>_<%
其实前端规范,就这几个,命名,分隔符,缩进等。
分号这个应该算是我们最常见的,但是也是坑最多的一个。即,每条语句结尾都需要加分号.
我们来看个例子:
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 功能详细描述 */
重要函数:给你的函数加上一些基本描述是很有必要的。通常有功能,参数效果,是否有返回值。
/** * 简述 * * 功能详细描述 * * @paramarg1 参数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 是单线程的语言。 单线程就意味着...
摘要:我是一名光荣的前端工程师,一直从事前端的开发工作。但是开发是前后端分离开发,通过进行交互,客户端请求服务器返回数据,由客户端进行渲染。因为前端代码和后台代码都是分开的,所以项目更容易维护,开发效率更高。 我是一名光荣的前端工程师,一直从事web前端的开发工作。当时可以说是零基础入门,之前因为前端的html、css、js比较好学,所以也愚蠢的认为web前端很简单,很没有技术含量。当然不仅...
摘要:我是一名光荣的前端工程师,一直从事前端的开发工作。但是开发是前后端分离开发,通过进行交互,客户端请求服务器返回数据,由客户端进行渲染。因为前端代码和后台代码都是分开的,所以项目更容易维护,开发效率更高。 我是一名光荣的前端工程师,一直从事web前端的开发工作。当时可以说是零基础入门,之前因为前端的html、css、js比较好学,所以也愚蠢的认为web前端很简单,很没有技术含量。当然不仅...
摘要:大家好,好久没有写公众号了,最近有朋友参加面试被问到开发规范的问题,突然发现每天干着工作,却没有关注这个问题,就想着写篇文章,简单的说下自己公司的开发规范。 大家好,好久没有写公众号了,最近有朋友参加面试被问到开发规范的问题,突然发现每天干着工作,却没有关注这个问题,就想着写篇文章,简单的说下自己公司的开发规范。 showImg(https://segmentfault.com/img...
阅读 897·2021-10-27 14:14
阅读 1701·2021-10-11 10:59
阅读 1274·2019-08-30 13:13
阅读 3133·2019-08-29 15:17
阅读 2679·2019-08-29 13:48
阅读 428·2019-08-26 13:36
阅读 2021·2019-08-26 13:25
阅读 803·2019-08-26 12:24