JavaScript 一團亂,這是好事

譯者按: JavaScript從簡單變複雜了,做者從另外一個角度看待這個問題。javascript

爲了保證可讀性,本文采用意譯而非直譯。另外,本文版權歸原做者全部,翻譯僅用於學習。html

JavaScript從不移除舊的特性,新版本老是向後兼容。我但願咱們可以把那些重複的舊的特性清理一下,可是保持兼容有太多的好處。我在本文會解釋。前端

1. 向後兼容的優點

  1. 遷移到新的語言版本是一件垂手可得的事情。舉個例子,若是你使用ES6,全部舊代碼無需任何改動。
  • 只有ES模塊很難採用,由於它破壞了向後兼容性。
  1. 避免了代碼版本化。若是你容許一些代碼是「舊」的,有一些是「新」的:
  • 語言引擎和工具變得更加複雜
  • 開發人員須要當心應對不一樣的版本
  • 你不能隨意移動代碼了(若是代碼基礎庫是混合的)

2. 一些處理JavaScript擴展功能的技巧

  • 授課和學習:你能夠直接忽略舊的特性,不單單是它們長什麼樣,它們幹嗎也無需知道
  • 使用Linter來輔助碼代碼
  • 使用Prettier來美化代碼

3. 一個乾淨的JavaScript

若是你想要使用一個比較簡潔的JavaScript,你能夠忽略不少舊的語法,下面是一些建議:java

  • var: 使用let和const
  • function: 使用箭頭函數和方法定義(method definition)。優點:更容易處理this。(具體信息)
  • Promises: 只使用async函數。你不能徹底避開使用Promises。
  • 迭代訪問對象:使用map
  • 循環:避免使用for-in,儘可能避免使用for, 建議使用for-of。
  • 參數:使用rest parameters(...args)
  • Function.prototype.apply():使用spread operator(f(..myArray))
  • 構造函數:使用class
  • IIFEs(當即調用函數): 使用塊做用域

4. 待定

typeof和instanceof很是複雜,我沒法建議哪一個取代哪一個。推薦這篇博客:Beyond typeof and instanceof: simplifying dynamic type checkses6

5. 閱讀更多

關於Fundebug

Fundebug專一於JavaScript、微信小程序、小遊戲BUG監控,自從2016年雙十一正式上線,Fundebug已經服務了一年半時間,累計處理了5億+錯誤事件,獲得了衆多知名用戶的承認。Fundebug支持主流前端框架的bug監控,歡迎各位老鐵體驗!小程序

相關文章
相關標籤/搜索