摘要:開(kāi)發(fā)需要編程規(guī)范嗎的靈活性非常大,如果開(kāi)發(fā)人員每個(gè)人都按自己的習(xí)慣隨意編寫(xiě),的代碼會(huì)非?;靵y不堪。程序員需要更強(qiáng)的自律性和規(guī)范,才能寫(xiě)出易讀性,易維護(hù)的代碼。
node開(kāi)發(fā)需要編程規(guī)范嗎?
js的靈活性非常大,如果開(kāi)發(fā)人員每個(gè)人都按自己的習(xí)慣隨意編寫(xiě),js的代碼會(huì)非常混亂不堪。js程序員需要更強(qiáng)的自律性和規(guī)范,才能寫(xiě)出易讀性,易維護(hù)的代碼。
隨著前端mvc的崛起,前端的js代碼會(huì)更加龐大難以管理,如果沒(méi)有統(tǒng)一的規(guī)范,后期維護(hù)會(huì)比登天還難。
編碼規(guī)范縮進(jìn)
采用兩個(gè)空格縮進(jìn),在編輯器中設(shè)置tab為兩個(gè)空格
變量聲明
用var聲明變量
var assert = require("assert");
var fork = require("child_process").fork;
var net = require("net");
錯(cuò)誤實(shí)例:
var assert = require("assert")
, fork = require("child_process").fork
, net = require("net");
用字面量聲明方式
var num = 123;
var aaa = {};
var arr = [];
var isAdmin = true;
避免使用:
var obj =new Object();
var arr = new Array();
var test =new String("");
var size = new Number();
不要在for循環(huán)等循環(huán)里聲明var變量
首先var是函數(shù)作用域,在循環(huán)聲明以后只有等函數(shù)聲明周期結(jié)束這些資源才會(huì)釋放
空格
在操作符前后需要加上空格,= 、% 、* 、- 、+ 前后都應(yīng)該加一個(gè)空格
比如:var foo = "bar" + baz;
錯(cuò)誤實(shí)例:var foo="bar"+baz;
單雙引號(hào)的使用
在node中盡量使用單引號(hào),
var html = "在json中使用雙引號(hào)
分號(hào)
命名規(guī)范
給表達(dá)式結(jié)尾加分號(hào),盡管js會(huì)自動(dòng)在行尾加上分號(hào),但是會(huì)產(chǎn)生一些誤解在編碼中,命名是重頭戲。好的命名可以使代碼賞心悅目,具有良好的維護(hù)性。
變量命名
變量名采用小駝峰命名,單詞之間沒(méi)有任何符號(hào)如:var adminUser = {}; var callNum = 2134323;方法命名
也是采用小駝峰命名,與變量不同的是采用動(dòng)詞或判斷行詞匯,如:var getUser = function(){}; var isAdmin = function(){}; var findUser = function(){};類(lèi)命名
類(lèi)名采用大駝峰,所有單詞首字母大寫(xiě),如:function User{ }常量命名
作為常量,單詞所有字母大寫(xiě),用下劃線(xiàn)分割,如:var PINK_COLOR = "PINK";文件命名
命名文件時(shí),盡量使用下劃線(xiàn)分割單詞,比如child_process.js和string_decode.js包名
其它要點(diǎn)
在包名中盡量不要包含js和node的字樣,應(yīng)當(dāng)適當(dāng)短并且有意義作用域
慎用with和eval(),容易引起作用域混亂比較操作
盡量使用===代替==,否則會(huì)遇到下面的情況,"0"==0;//true; ""==0;//true; "0"===""http://false;嚴(yán)格模式
在node后臺(tái)中盡量全使用嚴(yán)格模式"use strict";對(duì)象和數(shù)組遍歷
項(xiàng)目中實(shí)踐
數(shù)組遍歷使用普通for循環(huán),避免使用for in對(duì)數(shù)組遍歷,對(duì)象的遍歷使用for insublime和webstorm都有JSLint,JSHint這樣的代碼質(zhì)量工具,在配置文件中制定好模板規(guī)范即可
在版本控制工具中設(shè)置hook,在precommit的腳本中設(shè)置,如果代碼不符合標(biāo)準(zhǔn),就無(wú)法提交
參考文獻(xiàn)深入淺出nodejs
js秘密花園
js高級(jí)編程
如果文章對(duì)你有幫助,請(qǐng)去我的個(gè)人博客留個(gè)言吧! 我的博客
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/79873.html
摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒(méi)想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...
摘要:第一個(gè)問(wèn)題前端都做哪些事呢,前端都需要哪些技術(shù)呢前端發(fā)展的三個(gè)階段初級(jí)階段入門(mén)常見(jiàn)標(biāo)簽,新增的,語(yǔ)義化標(biāo)簽等等選擇器,背景,文本,鏈接,列表,盒模型,定位,浮動(dòng),新增的屬性柵格化系統(tǒng),按鈕,表單,導(dǎo)航數(shù)據(jù)類(lèi)型,對(duì)象,函數(shù),運(yùn)算符,語(yǔ)句,,選 第一個(gè)問(wèn)題:前端都做哪些事呢,前端都需要哪些技術(shù)呢 前端發(fā)展的三個(gè)階段: 初級(jí)階段:(入門(mén)) html:常見(jiàn)標(biāo)簽,html5新增的,語(yǔ)義化標(biāo)簽等等...
摘要:第一個(gè)問(wèn)題前端都做哪些事呢,前端都需要哪些技術(shù)呢前端發(fā)展的三個(gè)階段初級(jí)階段入門(mén)常見(jiàn)標(biāo)簽,新增的,語(yǔ)義化標(biāo)簽等等選擇器,背景,文本,鏈接,列表,盒模型,定位,浮動(dòng),新增的屬性柵格化系統(tǒng),按鈕,表單,導(dǎo)航數(shù)據(jù)類(lèi)型,對(duì)象,函數(shù),運(yùn)算符,語(yǔ)句,,選 第一個(gè)問(wèn)題:前端都做哪些事呢,前端都需要哪些技術(shù)呢 前端發(fā)展的三個(gè)階段: 初級(jí)階段:(入門(mén)) html:常見(jiàn)標(biāo)簽,html5新增的,語(yǔ)義化標(biāo)簽等等...
摘要:第一個(gè)問(wèn)題前端都做哪些事呢,前端都需要哪些技術(shù)呢前端發(fā)展的三個(gè)階段初級(jí)階段入門(mén)常見(jiàn)標(biāo)簽,新增的,語(yǔ)義化標(biāo)簽等等選擇器,背景,文本,鏈接,列表,盒模型,定位,浮動(dòng),新增的屬性柵格化系統(tǒng),按鈕,表單,導(dǎo)航數(shù)據(jù)類(lèi)型,對(duì)象,函數(shù),運(yùn)算符,語(yǔ)句,,選 第一個(gè)問(wèn)題:前端都做哪些事呢,前端都需要哪些技術(shù)呢 前端發(fā)展的三個(gè)階段: 初級(jí)階段:(入門(mén)) html:常見(jiàn)標(biāo)簽,html5新增的,語(yǔ)義化標(biāo)簽等等...
閱讀 2551·2021-11-16 11:45
閱讀 2536·2021-10-11 10:59
閱讀 2328·2021-10-08 10:05
閱讀 3993·2021-09-23 11:30
閱讀 2435·2021-09-07 09:58
閱讀 942·2019-08-30 15:55
閱讀 828·2019-08-30 15:53
閱讀 1983·2019-08-29 17:00