js-換行可能導致的問題

JavaScript 換行可能導致的問題

遇到的問題

  • 最近在項目當中遇到了一個問題:某一行的代碼因爲長度過長,就加了一個換行,結果運行之後結果不一樣.後來出現問題後仔細排查終於確定了問題的原因.下面舉一個簡單的例子,以下面兩個代碼爲例:

return {
       name:function ()
       {
           alert(1);
       }
   };

return 
{
      name:function ()
      {
          alert(1);
      }
  };

原因分析

  • 如果簡單對比兩個代碼的話,確實一點毛病沒有,但是運行的時候可能就會有報錯的可能性.
  • 查閱了部分資料後,知道js有一個自動修復機制——在程序可能有缺陷的時候,自動插入分號補全,但這個機制很不靠譜,常常會掩蓋一些錯誤。
  • 這樣上面兩個代碼片在運行的時候就會展示出不一樣的內容,第二塊代碼塊在運行的時候return後面會自動補齊一個分號
return;
{
	...
}
  • 這樣就會報錯了~

小建議

我是在修改別人代碼的時候手欠,看見內容比較長,就手動換行了一下,結果導致了項目在運行的時候報錯.所以綜上所述,有幾個不成熟的小建議送給自己:

  • 不要刻意更改別人的代碼,除非是項目需要或者在項目重構的時候
  • 在不得已個更改別人代碼之後,一定一定要驗證是否正確,養成良好的習慣,避免在後期遇到問題的時候再排查,這樣浪費的時間遠遠多於當初驗證的時間!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章