⑴ 前端開發是否有必要知道數據結構和演算法
如果只是單純做前端,沒有。前端的核心是DOM。演算法和數據結構是為了解決效率問題的,而提升前端的效率用到的概念往往僅僅是常識級別的。甚至一些流行的中小型庫中都看不到任何數據結構。可以認為前端是程序員里的一個特例,一般程序員面對的是計算機,前端開發人員面對的僅僅是瀏覽器。如果只是關注前端,學習數據結構和演算法的收益還不如去讀jQuery源碼。
既然前端用不上,樓主還是問到了這個問題,那就說明樓主關注的不僅僅是如何成為一個熟練的前端,而是成為一個優秀的軟體工程師。網站開發之所以流行,一部分是因為開發成本低。這些節省下來的成本,一部分就是開發人員的薪水。換句話說,前端開發簡單,門檻低,所以收入低,可替代性強。跳出前端這個領域,把自己放到軟體工程師的隊伍里,再看這個問題,答案就顯而易見了。如果只是專注於前端技術,那麼能解決的也僅僅是一小部分問題。
如果樓主關心的是如何更好地解決前端的問題,那麼在相當長的一段路上數據結構和演算法是優先順序很低的。如果樓主關心的是自己的職業規劃和自身素質的提升,數據結構和演算法則在任何時候都是優先順序最高的。