国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務(wù)器之家 - 編程語言 - JavaScript - 當(dāng)前流行的JavaScript代碼風(fēng)格指南

當(dāng)前流行的JavaScript代碼風(fēng)格指南

2021-03-12 17:50JavaScript教程網(wǎng) JavaScript

這篇文章主要介紹了當(dāng)前流行的JavaScript代碼風(fēng)格指南,同時(shí)推薦了一款風(fēng)格檢驗(yàn)工具jshint,可以配合大多數(shù)的編輯器統(tǒng)一團(tuán)隊(duì)代碼風(fēng)格,需要的朋友可以參考下

JavaScript 沒有一個(gè)權(quán)威的編碼風(fēng)格指南,取而代之的是一些流行的編碼風(fēng)格:

復(fù)制代碼 代碼如下:

Google的JavaScript風(fēng)格指南(以下簡稱Google)
http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml
NPM編碼風(fēng)格(以下簡稱NPM)
https://npmjs.org/doc/coding-style.html
Felix的Node.js風(fēng)格指南(以下簡稱Node.js)
http://nodeguide.com/style.html
慣用(Idiomatic)的JavaScript(以下簡稱Idiomatic)
https://github.com/rwldrn/idiomatic.js/
jQuery JavaScript風(fēng)格指南(以下簡稱jQuery)
http://contribute.jquery.org/style-guide/js/
Douglas Crockford的JavaScript風(fēng)格指南(以下簡稱Crockford),Douglas Crockford是Web開發(fā)領(lǐng)域最知名的技術(shù)權(quán)威之一,ECMA JavaScript 2.0標(biāo)準(zhǔn)化委員會委員
http://javascript.crockford.com/code.html


當(dāng)然,在JavaScript語法檢查器 JSLint 和 JSHint 中也有一些默認(rèn)的設(shè)置選擇。問題是,什么才是終極的、讓大多數(shù)開發(fā)者可以遵循的JavaScript編碼風(fēng)格呢?下面讓我們從這6個(gè)風(fēng)格指南中找出一些有共識的風(fēng)格來。

 

1. 代碼風(fēng)格比較

1.1 縮進(jìn)

兩個(gè)空格,無需更長的縮進(jìn),無需Tab縮進(jìn):Google、NPM、Node.js、Idiomatic
Tab縮進(jìn):jQuery
4個(gè)空格:Crockford

1.2 參數(shù)和表達(dá)式之間的空格

使用緊湊型風(fēng)格:Google、NPM、Node.js

復(fù)制代碼 代碼如下:
project.MyClass = function(arg1, arg2) {


過多地使用空格:Idiomatic, jQuery

復(fù)制代碼 代碼如下:
for ( i = 0; i < length; i++ ) {


沒有發(fā)表意見:Crockford
大部分指南中,都提醒開發(fā)者不要在語句結(jié)尾處有任何的空格。

 

1.3 代碼行長度

最多80個(gè)字符:Google、NPM、Node.js、Crockford(當(dāng)在代碼塊中,除了2個(gè)空格外的其他縮進(jìn)允許將函數(shù)參數(shù)與首個(gè)函數(shù)參數(shù)的位置對齊。另一種選擇是當(dāng)自動換行時(shí)使用4個(gè)空格縮進(jìn),而不是2個(gè)。)
沒有發(fā)表意見:jQuery、Idiomatic

1.4 分號

始終使用分號,不依賴于隱式插入:Google、Node.js、Crockford
在某些情況下不要使用expect:NPM
沒有發(fā)表意見:jQuery、Idiomatic

1.5 注釋

遵循JSDoc約定:Google、Idiomatic
沒有發(fā)表意見:NPM、Node.js、jQuery、Crockford

1.6 引號

推薦單引號:Google、Node.js
雙引號:jQuery
沒有發(fā)表意見:NPM、Idiomatic、Crockford

1.7 變量聲明

一次聲明一個(gè),不使用逗號:Node.js

復(fù)制代碼 代碼如下:

var foo = ”;
var bar = ”;


一次聲明多個(gè),在行結(jié)束處使用逗號分隔:Idiomatic、jQuery

復(fù)制代碼 代碼如下:

var foo = “”,
bar = “”,
quux;


在行開始處使用逗號:NPM
沒有發(fā)表意見:Google、Crockford

 

1.8 大括號

在同一行使用左大括號:Google、NPM、Node.js、Idiomatic、 jQuery、Crockford

復(fù)制代碼 代碼如下:
function thisIsBlock(){


NPM指南中指出,只在代碼塊需要包含下一行時(shí)使用大括號,否則不使用。

 

1.9 全局變量

不要使用全局變量:Google、Crockford(谷歌表示,全局變量命名沖突難以調(diào)試,并可能在兩個(gè)項(xiàng)目進(jìn)行正整合時(shí)出現(xiàn)一些棘手的問題。為了便于共享公用的JavaScript代碼,需要制定公約來避免沖突發(fā)生。Crockford認(rèn)為不應(yīng)該使用隱式全局變量。)

沒有發(fā)表意見:Idiomatic、jQuery、NPM、Node.js

2 命名風(fēng)格

2.1 變量命名

開始的第一個(gè)單詞小寫,之后的所有單詞首字母大寫:Google、NPM、Node.js、Idiomatic

復(fù)制代碼 代碼如下:

var foo = “”;
var fooName = “”;

 

2.2 常量命名

使用大寫字母:Google、NPM、Node.js

復(fù)制代碼 代碼如下:
var CONS = ‘VALUE';


沒有發(fā)表意見:jQuery、Idiomatic、Crockford

 

2.3 函數(shù)命名

開始的第一個(gè)單詞小寫,之后的所有單詞首字母大寫(駝峰式):Google、NPM、Idiomatic、Node.js(推薦使用長的、具描述性的函數(shù)名)

復(fù)制代碼 代碼如下:

function veryLongOperationName
function short()..


關(guān)鍵字形式的函數(shù)命名:

復(fù)制代碼 代碼如下:

function isReady()
function setName()
function getName()


沒有發(fā)表意見:jQuery、Crockford

 

2.4 數(shù)組命名

使用復(fù)數(shù)形式:Idiomatic

復(fù)制代碼 代碼如下:
var documents = [];


沒有發(fā)表意見:Google、jQuery、NPM、Node.js、Crockford

 

2.5 對象和類命名

使用如下形式:Google、NPM、Node.js

復(fù)制代碼 代碼如下:

var ThisIsObject = new Date;


沒有發(fā)表意見:jQuery、Idiomatic、Crockford

 

2.6 其他命名

針對長文件名和配置鍵使用all-lower-hyphen-css-case形式:NPM

3. 根據(jù)上述風(fēng)格配置 .jshintrc 文件

JSHint(http://www.jshint.com/)是一個(gè)JavaScript語法和風(fēng)格檢查工具,你可以用它來提醒代碼風(fēng)格相關(guān)的問題。它可以很好地被集成到許多常用的編輯器中,是統(tǒng)一團(tuán)隊(duì)編碼風(fēng)格的一個(gè)很好的工具。

你可以通過JSHint文檔查看可用的選項(xiàng): http://www.jshint.com/docs/#options
下面根據(jù)以上每個(gè)分類下的第一種風(fēng)格來創(chuàng)建一個(gè) .jshintrc 文件。你可以將它放到項(xiàng)目的根目錄中,JSHint-avare 代碼編輯器將會按照它來統(tǒng)一項(xiàng)目中的所有代碼風(fēng)格。

復(fù)制代碼 代碼如下:

{
  "camelcase" : true,
  "indent": 2,
  "undef": true,
  "quotmark": single,
  "maxlen": 80,
  "trailing": true,
  "curly": true
}

 

此外,你應(yīng)該將下面的頭添加到你的 JavaScript 文件中:

復(fù)制代碼 代碼如下:

/* jshint browser:true, jquery:true */

 

在 Node.js 文件中你應(yīng)該添加:

復(fù)制代碼 代碼如下:

/*jshint node:true */


還可以在各種 JavaScript 文件中添加下面的聲明:

復(fù)制代碼 代碼如下:

‘use strict';


這將影響 JSHint 和你的 JavaScript 引擎,可能不那么兼容,但是 JavaScript 將會運(yùn)行得更快。

 

4. 在提交 Git 之前自動執(zhí)行 JSHint

如果你想確保所有的 JS 代碼與 .jshintrc 中定義的風(fēng)格保持一致,你可以將下面的內(nèi)容添加到你的 .git/hooks/pre-commit文件中,當(dāng)你試圖提交任何新修改的文件到項(xiàng)目時(shí)會自動執(zhí)行風(fēng)格檢查。

 

復(fù)制代碼 代碼如下:


#!/bin/bash
# Pre-commit Git hook to run JSHint on JavaScript files.
#
# If you absolutely must commit without testing,
# use: git commit --no-verify

 

filenames=($(git diff --cached --name-only HEAD))

which jshint &> /dev/null
if [ $? -ne 0 ];
then
  echo "error: jshint not found"
  echo "install with: sudo npm install -g jshint"
  exit 1
fi

for i in "${filenames[@]}"
do
    if [[ $i =~ \.js$ ]];
    then
        echo jshint $i
        jshint $i
        if [ $? -ne 0 ];
        then
            exit 1
        fi
    fi
done

 

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲免费视频观看 | 欧美午夜精品久久久久久浪潮 | 中文字幕av黄色 | 91精品国产91久久久久久最新 | 久久久91精品国产一区二区三区 | 性吧在线 | 一级片在线免费观看视频 | 粉嫩欧美一区二区三区高清影视 | 国产日韩精品一区 | 国产精品亲子伦av一区二区三区 | 韩国毛片在线 | 欧美精品一区二区三区四区五区 | 99热在线精品免费 | 中文字幕不卡 | 久久精品国产一区二区三区不卡 | 久久的爱 | 久久久久久91 | 午夜视频在线免费观看 | 香蕉久久av一区二区三区 | 99热国产在线观看 | 毛片一级av | 天天操夜夜爽 | 成人精品鲁一区一区二区 | 动漫卡通精品一区二区三区介绍 | 91视频网页| 日韩6699人妻熟女毛片 | 免费啪啪网站 | 国产成人毛片 | 国产aⅴ| 亚洲综合欧美 | 成人tv| 在线a人片免费观看视频 | 欧美国产精品一区 | 精品女同一区二区三区在线绯色 | 午夜私人影院 | aaa综合国产 | 久久综合亚洲 | 国产精品一二三在线观看 | 久久精品亚洲 | 精品无人乱码一区二区三区的优势 | 亚洲精品1区2区 |