摘要:前端的進階其實和如何使用規(guī)范是完全相關的??偨Y起來整個流程就是無規(guī)范有規(guī)范無規(guī)范。另外,還有一個名叫的命令規(guī)范,不過他主要正對于的命名。我們來說說那些地方需要使用注釋。另外,規(guī)范當然還有很多,比如縮進,空格,逗號等。
前端的進階其實和如何使用規(guī)范是完全相關的。
新手: 啊,什么,這有規(guī)范嗎? 我不會誒 進階: 恩,每次,這里需要加分號。 這個逗號應該放這里... 大神: 啊,前端有規(guī)范嗎? 這里需要放分號,那里不需要放分號。 這里可以不大寫,我偏大寫。
總結起來整個流程就是:無規(guī)范 -> 有規(guī)范 -> 無規(guī)范。
所以,這里我們來談一談規(guī)范在前端的意義吧。由于,本人純屬小白,所以,咱不裝逼,我們談談有規(guī)范的那一塊。%>_<%
其實前端規(guī)范,就這幾個,命名,分隔符,縮進等。
分號這個應該算是我們最常見的,但是也是坑最多的一個。即,每條語句結尾都需要加分號.
我們來看個例子:
var a = 2 2 console.log(a); //2
本來我們想要的結果應該是a=22,但是現(xiàn)實往往是不要臉的。他的結果是2。
為什么呢? 為什么呢? 為什么呢?
我們來看一下ECMA的對此的解釋。
我們只在看起來像是一條語句的后面加上分號表示一句
實際上其實是這樣的:
var a = 2; 2;
所以,一條語句寫完之后別手賤 換行,因為你不知道你正在做一件十分 keai的事,而且每條語句最好都加上分號,至少不會出錯。
好吧,還說服不了你的話。我們來看一個經(jīng)典的問題
;(function(){ // ... })();
如果 你看過一些插件的話,應該會發(fā)現(xiàn)這個普遍的現(xiàn)象。
為什么呢? 為什么呢? 為什么呢?
為了防止出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 是函數(shù)表達式里面的console.log(para)里面的。第二個 "speak is I want to Speak" 就是console.log(speak)里面的內容了。
總結一下,原因,我們最怕遇見這種情況,在函數(shù)后面使用"()"就相當于調用該函數(shù)并且傳入?yún)?shù),所以上面執(zhí)行情況是。
var speak = function(para){console.log(para); return "speak is "+para}("I want to Seapk").toString(); //首先獲得函數(shù)表達式的執(zhí)行結果. 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"的命令規(guī)范,不過他主要正對于css的命名。如果感興趣的同學可以了解一下: 傳送門。
注釋感覺在js里面真的是弱化了注釋的效果, 從以前幾十行代碼就可以寫完的一個js,到現(xiàn)在的大型webApp,單頁應用,你再寫30+的js試一試。 所以,可能是被遺傳了吧,我大部分的朋友都不喜歡寫注釋,但這里真的希望大家在寫代碼的時候一定要多寫注釋。 坊間有個不成文的規(guī)定,如果你的注釋不占你程序的2/3的話,你這個程序won"t pass. 同時,寫注釋也是給你的接手人,一個很好的指導意義。
通常我們寫注釋可以直接使用快捷鍵:
//windows ctrl+/ //MAC command+/
這樣方便,易記。
我們來說說那些地方需要使用注釋。
文件開頭:一個main.js的開頭需要使用注釋,來說明你js文件的相關信息,以及功能描述。通常是:
/** * @author jimmy * @file Image.js * @description 功能詳細描述 */
重要函數(shù):給你的函數(shù)加上一些基本描述是很有必要的。通常有功能,參數(shù)效果,是否有返回值。
/** * 簡述 * * 功能詳細描述 * * @paramarg1 參數(shù)1 * @param arg2 參數(shù)2,默認為0 * @return 看xxx是否成功 */ function doSth (arg1, arg2) { }
重要語句:其實js程序里面,要么不是函數(shù),要么就是單語句。關于語句的注釋應該沒什么說的。 就是在每行語句上,加上一條注釋,可以不用上面這么復雜的,直接使用command + /即可。
//是否登錄 var isOk = isLogin?true:false;
OK,注釋差不多就是這幾個部分。
另外,js規(guī)范當然還有很多,比如縮進,空格,逗號等。,(艸)
寶寶不想說啦。 其實這些規(guī)范你使用code pretty一下就好看了。如果你使用sublime 你可以下一個package HTML pretty 等相關的代碼美化插件。都是可以的。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/78635.html
摘要:單線程就意味著,所有任務需要排隊,前一個任務結束,才會執(zhí)行后一個任務。這決定了它只能是單線程,否則會帶來很復雜的同步問題。小結本身是單線程的,并沒有異步的特性。當異步函數(shù)執(zhí)行時,回調函數(shù)會被壓入這個隊列。 走在前端的大道上 本篇將自己讀過的相關 js異步 的文章中,對自己有啟發(fā)的章節(jié)片段總結在這(會對原文進行刪改),會不斷豐富提煉總結更新。 概念 JS 是單線程的語言。 單線程就意味著...
摘要:我是一名光榮的前端工程師,一直從事前端的開發(fā)工作。但是開發(fā)是前后端分離開發(fā),通過進行交互,客戶端請求服務器返回數(shù)據(jù),由客戶端進行渲染。因為前端代碼和后臺代碼都是分開的,所以項目更容易維護,開發(fā)效率更高。 我是一名光榮的前端工程師,一直從事web前端的開發(fā)工作。當時可以說是零基礎入門,之前因為前端的html、css、js比較好學,所以也愚蠢的認為web前端很簡單,很沒有技術含量。當然不僅...
摘要:我是一名光榮的前端工程師,一直從事前端的開發(fā)工作。但是開發(fā)是前后端分離開發(fā),通過進行交互,客戶端請求服務器返回數(shù)據(jù),由客戶端進行渲染。因為前端代碼和后臺代碼都是分開的,所以項目更容易維護,開發(fā)效率更高。 我是一名光榮的前端工程師,一直從事web前端的開發(fā)工作。當時可以說是零基礎入門,之前因為前端的html、css、js比較好學,所以也愚蠢的認為web前端很簡單,很沒有技術含量。當然不僅...
摘要:大家好,好久沒有寫公眾號了,最近有朋友參加面試被問到開發(fā)規(guī)范的問題,突然發(fā)現(xiàn)每天干著工作,卻沒有關注這個問題,就想著寫篇文章,簡單的說下自己公司的開發(fā)規(guī)范。 大家好,好久沒有寫公眾號了,最近有朋友參加面試被問到開發(fā)規(guī)范的問題,突然發(fā)現(xiàn)每天干著工作,卻沒有關注這個問題,就想著寫篇文章,簡單的說下自己公司的開發(fā)規(guī)范。 showImg(https://segmentfault.com/img...
閱讀 936·2021-10-27 14:14
閱讀 1753·2021-10-11 10:59
閱讀 1326·2019-08-30 13:13
閱讀 3164·2019-08-29 15:17
閱讀 2762·2019-08-29 13:48
閱讀 501·2019-08-26 13:36
閱讀 2092·2019-08-26 13:25
閱讀 866·2019-08-26 12:24