国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解用函數(shù)式編程對JavaScript進行斷舍離

2024-05-06 15:26:32
字體:
供稿:網(wǎng)友

我和JavaScript

從1997年網(wǎng)景的Navigator 3瀏覽器開始就開始使用JavaScript。當時,JavaScript還只能做一些很簡單的事情。我記得最酷的就是用JavaScript實現(xiàn)mouseover特性,在那個時候已經(jīng)算得上是高科技了!當鼠標移過去之后,文本內(nèi)容就神奇的改變了。因為當時都是pre-DHTML,你根本不需要隱藏或則顯示DOM元素。

關(guān)于DHTML

DHTML是Dynamic HTML的簡稱,就是動態(tài)的html(標準通用標記語言下的一個應(yīng)用),是相對傳統(tǒng)的靜態(tài)的html而言的一種制作網(wǎng)頁的概念。所謂動態(tài)HTML(Dynamic HTML,簡稱DHTML),其實并不是一門新的語言,它只是HTML、CSS和客戶端腳本的一種集成,即一個頁面中包括html+css+javascript(或其它客戶端腳本),其中css和客戶端腳本是直接在頁面上寫而不是鏈接上相關(guān)文件。

在那個時候,JavaScript的演化很慢,主要應(yīng)用在表單驗證。因此,不像今天這么火爆,并沒有引起太多的關(guān)注。可以說只是一個錦上添花的附加物,你需要確保在瀏覽器禁用JavaScript之后,你的應(yīng)用依然可以正常使用。再往后,框架一個接著一個出現(xiàn):jQuery,Knockout, Angular, React, Vue, 等等。

同樣,JavaScript也在加速演化。我們才使用ES6不久,現(xiàn)在人們幾乎已經(jīng)跳過ES7,開始討論ES8了。

并且,我們有很多替代品,比如TypeScript,CoffeScript,ClojureScript, ELM,等等。

我們已經(jīng)被太多的框架和語言所淹沒,很難去跟蹤和掌握所有的語言和框架。

錯誤路線

當JavaScript逐漸成熟,面向?qū)ο缶幊?OOP)的概念也滲入進來,而且我曾經(jīng)很喜歡。

我開始嘗試所有不同的方法來創(chuàng)建類,我最終也可以正確的使用繼承。我對自己說:JavaScript開始真的像一個語言了!

但是,直到多年以后我發(fā)現(xiàn)OOP是JavaScript引入的最糟糕的一個設(shè)計!

我嘗試將我對C#的理解帶入到JavaScript中去。一開始充滿期待,但是后來發(fā)現(xiàn)真的太復雜,太燒腦了。

這主要是因為JavaScript的原型繼承和C#不一樣,我已經(jīng)習慣于每天編寫類似于console.log(this)這樣飄逸的代碼。但是現(xiàn)在呢?如果我一不小心沒按照規(guī)則來,那將會給我?guī)碡瑝簟K接蟹椒ê退接兄当仨氁诿智懊婕由舷聞澗€,甚至必須用閉包來保證私有性。

因此,不僅OOP導致了很多問題,同時也由于添加OOP帶來了很多新的問題。

函數(shù)式編程

一開始我并不理解。我可以閱讀并理解這些用函數(shù)式編寫的代碼,但是不知道為什么!最終,我強迫我自己去學習它。

函數(shù)式語言給了我一個全新的視角,讓我從一個完全不同的方式去看待編程。

一開始會感到不自然,需要時間去適應(yīng)。所有的定義都是基于函數(shù),值不可更改,無狀態(tài)。我用函數(shù)式的思維去解決問題。因為不熟悉,我花了更長的時間去學習。漸漸地,我熟練掌握了使用函數(shù)式的方法去編程。并且,我也知道所有代碼這樣編寫的內(nèi)在含義。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 扶沟县| 鄂托克前旗| 汉寿县| 吉水县| 宿松县| 阿鲁科尔沁旗| 绥芬河市| 宝兴县| 竹山县| 南陵县| 邯郸市| 昌吉市| 白沙| 安阳县| 和政县| 宣汉县| 虞城县| 中卫市| 海安县| 河北省| 喜德县| 石景山区| 澎湖县| 安义县| 体育| 元阳县| 磴口县| 郸城县| 浙江省| 阳曲县| 布拖县| 陵川县| 涞源县| 卢湾区| 白朗县| 连城县| 竹溪县| 汶川县| 肥西县| 湄潭县| 祁东县|