大部分针对Javascript最合理的方法归纳。
 
类型
 
• 原始类型:我们可以直接使用值。
  ο  string
  ο  number
  ο  boolean
  ο  null
  ο  undefined
 
var foo = 1,
bar = foo; bar = 9; console.log(foo, bar); // => 1, 9
 

•   复合类型:我们通过`引用`对值进行间接访问。

  ο  object

  ο  array

  ο  function

 
var foo = [1, 2],
bar = foo; bar[0] = 9; console.log(foo[0], bar[0]); // => 9, 9
 

 

Objects
 
• 使用{}创建对象。
// bad
var item = new Object(); // good
var item = {};

• 不要使用保留字作为关键字。

 
// bad
var superman = {
class: 'superhero',
default: { clark: 'kent' },
private: true
}; // good
var superman = {
klass: 'superhero',
defaults: { clark: 'kent' },
hidden: true
};
 
Arrays
 

• 使用[]创建数组

// bad
var items = new Array(); // good
var items = [];

• 如果你不知道数组长度,使用Array#push。

 
var someStack = [];

// bad
someStack[someStack.length] = 'abracadabra'; // good
someStack.push('abracadabra');
 

• 当你需要复制数组的时候,请使用Array#slice。

 
var len = items.length,
itemsCopy = [],
i; // bad
for (i = 0; i < len; i++) {
itemsCopy[i] = items[i];
} // good
itemsCopy = items.slice();
 
Strings

• 对于字符串,我们使用单引号''。

 
// bad
var name = "Bob Parr"; // good
var name = 'Bob Parr'; // bad
var fullName = "Bob " + this.lastName; // good
var fullName = 'Bob ' + this.lastName;
 

• 超过80个字符的字符串,我们使用串联符号(\),让字符串多行显示。

• 注意:如果过度使用带串联符号的字符可能会影响到性能。

 

 
// bad
var errorMessage = 'This is a super long error that was thrown because of Batman. When you stop to think about how Batman had anything to do with this, you would get nowhere fast.'; // bad
var errorMessage = 'This is a super long error that \
was thrown because of Batman. \
When you stop to think about \
how Batman had anything to do \
with this, you would get nowhere \
fast.'; // good
var errorMessage = 'This is a super long error that ' +
'was thrown because of Batman.' +
'When you stop to think about ' +
'how Batman had anything to do ' +
'with this, you would get nowhere ' +
'fast.';
 

  

• 当我们在编程的时候,需要拼接出一个字符串,我们可以使用Array#join 代替字符串连接。尤其是对IE浏览器。

 
var items,
messages,
length, i; messages = [{
state: 'success',
message: 'This one worked.'
},{
state: 'success',
message: 'This one worked as well.'
},{
state: 'error',
message: 'This one did not work.'
}]; length = messages.length; // bad
function inbox(messages) {
items = '<ul>'; for (i = 0; i < length; i++) {
items += '<li>' + messages[i].message + '</li>';
} return items + '</ul>';
} // good
function inbox(messages) {
items = []; for (i = 0; i < length; i++) {
items[i] = messages[i].message;
} return '<ul><li>' + items.join('</li><li>') + '</li></ul>';
}
 
Functions

• 函数表达式

 
// anonymous function expression
var anonymous = function() {
return true;
}; // named function expression
var named = function named() {
return true;
}; // immediately-invoked function expression (IIFE)
(function() {
console.log('Welcome to the Internet. Please follow me.');
})();
 

• 绝对不要在非函数块(if,while)申明一个函数。我们可以把函数申明变成一个函数表达式。

 
// bad
if (currentUser) {
function test() {
console.log('Nope.');
}
} // good
if (currentUser) {
var test = function test() {
console.log('Yup.');
};
}
 

• 绝对不要把一个参数命名为arguments,arguments参数是函数作用域内给出的一个特殊变量,如果你把参数命名为arguments,那么这个参数就会覆盖它原有的特殊变量。

 
// bad
function nope(name, options, arguments) {
// ...stuff...
} // good
function yup(name, options, args) {
// ...stuff...
}
 
总结
 
  这些很多是大家都比较清楚的,平时经常用,我只是强调一下,让大家再复习一下。
 
 

Javascript 风格向导的更多相关文章

  1. 【转】JavaScript 风格指南/编码规范(Airbnb公司版)

    原文转自:http://blog.jobbole.com/79484/ Airbnb 是一家位于美国旧金山的公司,本文是其内部的 JavaScript 风格指南/编码规范,在 Github 上有 11 ...

  2. JavaScript 风格指导(Airbnb版)

    JavaScript 风格指导(Airbnb版) 用更合理的方式写 JavaScript 原文 翻译自 Airbnb JavaScript Style Guide . 目录 类型 引用 对象 数组 解 ...

  3. JavaScript 风格指南

    来源于: https://github.com/alivebao/clean-code-js 目录 介绍 变量 函数 对象和数据结构 类 测试 并发 错误处理 格式化 注释 介绍 作者根据 Rober ...

  4. 翻译:谷歌HTML、CSS和JavaScript风格规范

    我喜欢浏览风格规范.他们通常有明显的规则,虽然有些有荒诞之感,但是却可以发现之前未注意到的宝石.不幸的是,鲜有公司有这个勇气来发布自己内部的风格规范.BBC 2010年时候公开其文档以及Google最 ...

  5. javascript小小技巧

    JS的一些小技巧,我主要是做后台的(.NET),前端知识了解得不多,经验非常有限,不过还是经常写JS代码,对前端有着浓厚的兴趣,特喜欢js这门语言,虽然很多人喷它,但还是很喜欢Js.下面说说项目中我经 ...

  6. 一些达成共识的JavaScript编码风格约定

    如果你的代码易于阅读,那么代码中bug也将会很少,因为一些bug可以很容被调试,并且,其他开发者参与你项目时的门槛也会比较低.因此,如果项目中有多人参与,采取一个有共识的编码风格约定非常有必要.与其他 ...

  7. JavaScript编程风格--基本的格式化

    缩进层级     推荐4个空格字符作为一个缩进层级. 语句结尾     推荐不要省略分号. 行的长度     最好一行不超过80个字符. 换行     在运算符后换行,下一行增加两个层级的缩进.   ...

  8. 浅谈前端JavaScript编程风格

    前言 多家公司和组织已经公开了它们的风格规范,详细可參阅jscs.info,以下的内容主要參考了Airbnb的JavaScript风格规范.当然还有google的编程建议等编程风格 本章探讨怎样使用E ...

  9. 一些达成共识的JavaScript编码风格约定【转】

    如果你的代码易于阅读,那么代码中bug也将会很少,因为一些bug可以很容被调试,并且,其他开发者参与你项目时的门槛也会比较低.因此,如果项目中有多人参与,采取一个有共识的编码风格约定非常有必要.与其他 ...

随机推荐

  1. 图解MYSQL JOIN ON,SQL JOIN 详解,数据库sql join语句

    对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codin ...

  2. IS--A与 Has-a 区别

  3. js解决click事件点击事件间隔方法

    var myTimeout = null; $("#id").click(function(){ clearTimeout(myTimeout); myTimeout = setT ...

  4. 数据库课本SQL第三章答案

    3 .用 sQL 语句建立第二章习题 5 中的 4 个表. 答: 对于 S 表: S ( SNO , SNAME , STATUS , CITY ) ; 建 S 表: CREATE TABLE S ( ...

  5. Linux----函数中变量的作用域、local关键字。

    问题引出: 问题说明: shell的函数中如果变量的前面没有加local关键字.在全局作用域内存在这个变量名的情况下.函数中会直接使用这个变量 而不是自己创建一个.要想做到在函数创建一个变量也是可以的 ...

  6. 武汉新芯:已建成IP体系,欲以存储器为特色

    武汉新芯集成电路制造公司(XMC)是地方政府投资的半导体企业,2006年由湖北省.武汉市.武汉市东湖高新区投资,并由东湖高新区管理的全资国有企业,前几年委托SMIC(中芯国际)经营管理,从2012年底 ...

  7. Get Intellisense for .axml files in Visual Studio

    原文Get Intellisense for .axml files in Visual Studio So in order to get some intellisense support for ...

  8. 运用JavaScript构建你的第一个Metro式应用程序(onWindows 8)(二)

    原文 http://blog.csdn.net/zhangxin09/article/details/6793330 先前的学习中,我们已经了解了 Metro式的 JavaScript 应用程序大致如 ...

  9. 使用libcurl提交POST请求

    最近在学习libcurl,并利用它提交POST请求,可是返回的响应总是无从验证该次POST请求是否成功提交了. 1. 先看下根据firebug提交的一次成功的请求,这里以login我喜欢上的xiami ...

  10. 微信公众号菜单openid 点击菜单即可打开并登录微站

    现在大部分微站都通过用户的微信openid来实现自动登录.在我之前的开发中,用户通过点击一个菜单,公众号返回一个图文,用户点击这个图文才可以自动登录微站.但是如果你拥有高级接口,就可以实现点击菜单,打 ...