Javascript 風格嚮導Javascript 風格嚮導(續)

來源:互聯網
上載者:User
序   大部分針對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 • 使用{}建立對象。
// badvar item = new Object();// goodvar item = {};

 

• 不要使用保留字作為關鍵字。

// badvar superman = {  class: 'superhero',  default: { clark: 'kent' },  private: true};// goodvar superman = {  klass: 'superhero',  defaults: { clark: 'kent' },  hidden: true};

 

Arrays 

 • 使用[]建立數組

// badvar items = new Array();// goodvar items = [];

 • 如果你不知道數組長度,使用Array#push。

var someStack = [];// badsomeStack[someStack.length] = 'abracadabra';// goodsomeStack.push('abracadabra');

 

  • 當你需要複製數組的時候,請使用Array#slice。

var len = items.length,    itemsCopy = [],    i;// badfor (i = 0; i < len; i++) {  itemsCopy[i] = items[i];}// gooditemsCopy = items.slice();

 

Strings

 • 對於字串,我們使用單引號''。

// badvar name = "Bob Parr";// goodvar name = 'Bob Parr';// badvar fullName = "Bob " + this.lastName;// goodvar fullName = 'Bob ' + this.lastName;

 • 超過80個字元的字串,我們使用串聯符號(\),讓字串多行顯示。

 • 注意:如果過度使用帶串聯符號的字元可能會影響到效能。

 

// badvar 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.';// badvar 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.';// goodvar 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;// badfunction inbox(messages) {  items = '<ul>';  for (i = 0; i < length; i++) {    items += '<li>' + messages[i].message + '</li>';  }  return items + '</ul>';}// goodfunction 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 expressionvar anonymous = function() {  return true;};// named function expressionvar named = function named() {  return true;};// immediately-invoked function expression (IIFE)(function() {  console.log('Welcome to the Internet. Please follow me.');})();

 • 絕對不要在非函數塊(if,while)申明一個函數。我們可以把函數申明變成一個函數運算式。

// badif (currentUser) {  function test() {    console.log('Nope.');  }}// goodif (currentUser) {  var test = function test() {    console.log('Yup.');  };}

 

 • 絕對不要把一個參數命名為arguments,arguments參數是函數範圍內給出的一個特殊變數,如果你把參數命名為arguments,那麼這個參數就會覆蓋它原有的特殊變數。

// badfunction nope(name, options, arguments) {  // ...stuff...}// goodfunction yup(name, options, args) {  // ...stuff...}

 

總結   這些很多是大家都比較清楚的,平時經常用,我只是強調一下,讓大家再複習一下。   下一篇:Javascript 風格嚮導(續)

 

推薦 

 

 

  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.