摘要:前端的進階其實和如何使用規范是完全相關的。總結起來整個流程就是無規范有規范無規范。另外,還有一個名叫的命令規范,不過他主要正對于的命名。我們來說說那些地方需要使用注釋。另外,規范當然還有很多,比如縮進,空格,逗號等。
前端的進階其實和如何使用規范是完全相關的。
新手: 啊,什么,這有規范嗎? 我不會誒 進階: 恩,每次,這里需要加分號。 這個逗號應該放這里... 大神: 啊,前端有規范嗎? 這里需要放分號,那里不需要放分號。 這里可以不大寫,我偏大寫。
總結起來整個流程就是:無規范 -> 有規范 -> 無規范。
所以,這里我們來談一談規范在前端的意義吧。由于,本人純屬小白,所以,咱不裝逼,我們談談有規范的那一塊。%>_<%
其實前端規范,就這幾個,命名,分隔符,縮進等。
分號這個應該算是我們最常見的,但是也是坑最多的一個。即,每條語句結尾都需要加分號.
我們來看個例子:
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 等相關的代碼美化插件。都是可以的。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78635.html
摘要:單線程就意味著,所有任務需要排隊,前一個任務結束,才會執行后一個任務。這決定了它只能是單線程,否則會帶來很復雜的同步問題。小結本身是單線程的,并沒有異步的特性。當異步函數執行時,回調函數會被壓入這個隊列。 走在前端的大道上 本篇將自己讀過的相關 js異步 的文章中,對自己有啟發的章節片段總結在這(會對原文進行刪改),會不斷豐富提煉總結更新。 概念 JS 是單線程的語言。 單線程就意味著...
摘要:我是一名光榮的前端工程師,一直從事前端的開發工作。但是開發是前后端分離開發,通過進行交互,客戶端請求服務器返回數據,由客戶端進行渲染。因為前端代碼和后臺代碼都是分開的,所以項目更容易維護,開發效率更高。 我是一名光榮的前端工程師,一直從事web前端的開發工作。當時可以說是零基礎入門,之前因為前端的html、css、js比較好學,所以也愚蠢的認為web前端很簡單,很沒有技術含量。當然不僅...
摘要:我是一名光榮的前端工程師,一直從事前端的開發工作。但是開發是前后端分離開發,通過進行交互,客戶端請求服務器返回數據,由客戶端進行渲染。因為前端代碼和后臺代碼都是分開的,所以項目更容易維護,開發效率更高。 我是一名光榮的前端工程師,一直從事web前端的開發工作。當時可以說是零基礎入門,之前因為前端的html、css、js比較好學,所以也愚蠢的認為web前端很簡單,很沒有技術含量。當然不僅...
摘要:大家好,好久沒有寫公眾號了,最近有朋友參加面試被問到開發規范的問題,突然發現每天干著工作,卻沒有關注這個問題,就想著寫篇文章,簡單的說下自己公司的開發規范。 大家好,好久沒有寫公眾號了,最近有朋友參加面試被問到開發規范的問題,突然發現每天干著工作,卻沒有關注這個問題,就想著寫篇文章,簡單的說下自己公司的開發規范。 showImg(https://segmentfault.com/img...
閱讀 916·2021-10-27 14:14
閱讀 1741·2021-10-11 10:59
閱讀 1315·2019-08-30 13:13
閱讀 3152·2019-08-29 15:17
閱讀 2750·2019-08-29 13:48
閱讀 488·2019-08-26 13:36
閱讀 2082·2019-08-26 13:25
閱讀 857·2019-08-26 12:24