前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >JavaScript 标准风格指南

JavaScript 标准风格指南

作者头像
前端GoGoGo
发布2018-08-24 16:28:27
发布2018-08-24 16:28:27
30400
代码可运行
举报
运行总次数:0
代码可运行

翻译自这里

规则

缩进用2个空格

代码语言:javascript
代码运行次数:0
运行
复制
function hello (name) {
  console.log('hi', name)
}

字符串用单引号

只有在字符串中有单引号时才用双引号。

代码语言:javascript
代码运行次数:0
运行
复制
console.log('hello there')
$("<div class='box'>")

避免定义不使用的变量

代码语言:javascript
代码运行次数:0
运行
复制
function myFunction () {
  var result = something()   // ✗ avoid
}

关键字后需要有空格

代码语言:javascript
代码运行次数:0
运行
复制
if (condition) { ... }   // ✓ ok
if(condition) { ... }    // ✗ avoid

JavaScript 中的关键字有 var, const, let, if, else, case, break, while, for, function, return 等。

定义方法的圆括号前需要加空格

代码语言:javascript
代码运行次数:0
运行
复制
function name (arg) { ... }   // ✓ ok
function name(arg) { ... }    // ✗ avoid

run(function () { ... })      // ✓ ok
run(function() { ... })       // ✗ avoid

总是使用 === 来代替用 ==

例外是可以用 obj == null 来判断对象是 null 或 undefined

代码语言:javascript
代码运行次数:0
运行
复制
if (name === 'John')   // ✓ ok
if (name == 'John')    // ✗ avoid
代码语言:javascript
代码运行次数:0
运行
复制
if (name !== 'John')   // ✓ ok
if (name != 'John')    // ✗ avoid

操作符前后必须要有1个空格

代码语言:javascript
代码运行次数:0
运行
复制
// ✓ ok
var x = 2
var message = 'hello, ' + name + '!'

// ✗ avoid
var x=2
var message = 'hello, '+name+'!'

逗号后必须要有1个空格

代码语言:javascript
代码运行次数:0
运行
复制
// ✓ ok
var list = [1, 2, 3, 4]
function greet (name, options) { ... }

// ✗ avoid
var list = [1,2,3,4]
function greet (name,options) { ... }

else 要保持和花括号在一行

代码语言:javascript
代码运行次数:0
运行
复制
// ✓ ok
if (condition) {
  // ...
} else {
  // ...
}

// ✗ avoid
if (condition) {
  // ...
}
else {
  // ...
}

条件语句内容和条件语句不在一行,必须用花括号

代码语言:javascript
代码运行次数:0
运行
复制
// ✓ ok
if (options.quiet !== true) console.log('done')

// ✓ ok
if (options.quiet !== true) {
  console.log('done')
}

// ✗ avoid
if (options.quiet !== true)
  console.log('done')

错误必须要被处理

代码语言:javascript
代码运行次数:0
运行
复制
// ✓ ok
run(function (err) {
  if (err) throw err
  window.alert('done')
})
// ✗ avoid
run(function (err) {
  window.alert('done')
})

全局对象一定要加 window

例外:document, console 和 navigator。

代码语言:javascript
代码运行次数:0
运行
复制
window.alert('hi')   // ✓ ok
alert('hi') // ✗ avoid

避免多行空行

代码语言:javascript
代码运行次数:0
运行
复制
// ✓ ok
var value = 'hello world'
console.log(value)
// ✗ avoid
var value = 'hello world'


console.log(value)

三元表达式中的 ? 和 : 必须和后面的表达式在一行

代码语言:javascript
代码运行次数:0
运行
复制
// ✓ ok
var location = env.development ? 'localhost' : 'www.api.com'

// ✓ ok
var location = env.development
  ? 'localhost'
  : 'www.api.com'

// ✗ avoid
var location = env.development ?
  'localhost' :
  'www.api.com'

一个 var 定义一个变量

代码语言:javascript
代码运行次数:0
运行
复制
// ✓ ok
var silent = true
var verbose = true

// ✗ avoid
var silent = true, verbose = true

// ✗ avoid
var silent = true,
    verbose = true

在条件表达式中如果用赋值语句的话,需要加额外的括号

这样做是为了表明这是故意这么做的,而不是因为疏忽

代码语言:javascript
代码运行次数:0
运行
复制
// ✓ ok
while ((m = text.match(expr))) {
  // ...
}

// ✗ avoid
while (m = text.match(expr)) {
  // ...
}

分号

不加分号

代码语言:javascript
代码运行次数:0
运行
复制
window.alert('hi')   // ✓ ok
window.alert('hi');  // ✗ avoid

以 (,[,` 开头的语句前面需要加分号

代码语言:javascript
代码运行次数:0
运行
复制
// ✓ ok
;(function () {
  window.alert('ok')
}())

// ✗ avoid
(function () {
  window.alert('ok')
}())

// ✓ ok
;[1, 2, 3].forEach(bar)

// ✗ avoid
[1, 2, 3].forEach(bar)

// ✓ ok
;`hello`.indexOf('o')

// ✗ avoid
`hello`.indexOf('o')

为了让代码更清晰和可读,不鼓励自作聪明的简写。如

代码语言:javascript
代码运行次数:0
运行
复制
;[1, 2, 3].forEach(bar)

可以用优化成

代码语言:javascript
代码运行次数:0
运行
复制
var nums = [1, 2, 3]
nums.forEach(bar)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.11.18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 规则
    • 缩进用2个空格
    • 字符串用单引号
    • 避免定义不使用的变量
    • 关键字后需要有空格
    • 定义方法的圆括号前需要加空格
    • 总是使用 === 来代替用 ==
    • 操作符前后必须要有1个空格
    • 逗号后必须要有1个空格
    • else 要保持和花括号在一行
    • 条件语句内容和条件语句不在一行,必须用花括号
    • 错误必须要被处理
    • 全局对象一定要加 window
    • 避免多行空行
    • 三元表达式中的 ? 和 : 必须和后面的表达式在一行
    • 一个 var 定义一个变量
    • 在条件表达式中如果用赋值语句的话,需要加额外的括号
  • 分号
    • 不加分号
    • 以 (,[,` 开头的语句前面需要加分号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档