JavaScript一團亂,這是好事


譯者按: JavaScript從簡單變復雜了,作者從另一個角度看待這個問題。

為了保證可讀性,本文采用意譯而非直譯。另外,本文版權歸原作者所有,翻譯僅用於學習。

JavaScript從不移除舊的特性,新版本總是向后兼容。我希望我們能夠把那些重復的舊的特性清理一下,但是保持兼容有太多的好處。我在本文會解釋。

1. 向后兼容的優勢

  1. 遷移到新的語言版本是一件輕而易舉的事情。舉個例子,如果你使用ES6,所有舊代碼無需任何改動。
    • 只有ES模塊很難采用,因為它破壞了向后兼容性。
  2. 避免了代碼版本化。如果你允許一些代碼是“舊”的,有一些是“新”的:
    • 語言引擎和工具變得更加復雜
    • 開發人員需要小心應對不同的版本
    • 你不能隨意移動代碼了(如果代碼基礎庫是混合的)

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

  • 授課和學習:你可以直接忽略舊的特性,不僅僅是它們長什么樣,它們干嘛也無需知道
  • 使用Linter來輔助碼代碼
  • 使用Prettier來美化代碼

3. 一個干凈的JavaScript

如果你想要使用一個比較簡潔的JavaScript,你可以忽略很多舊的語法,下面是一些建議:

  • 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 checks

5. 閱讀更多

關於Fundebug

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM