JavaScript | The Will Will Web

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何快速建置一個 Node.js 專案並使用 TypeScript 與 VSCode 進行開發

每次要開始寫一個 Node.js 搭配 TypeScript 的專案,都沒有一個能讓自己滿意的專案範本,不然就是網路上經常找到不完整的參考文件。這篇文章我打算建立一個 Node.js 搭配 TypeScript 進行開發的專案範本,完整交代整個建置過程,並用一個簡單的例子說明開發與執行的注意事項。

... 繼續閱讀 ...

比對字串在不同程式語言的語法差異 (JS, C#, Java, Go)

今天同事提到一個問題,說他看到客戶用 JavaScript 的 <> 來比對日期字串,但我們要將這份邏輯移到後端 Java 應用程式中,由於 Java 沒看到類似的語法,雖然知道有 Java 字串有個 compareTo() 方法可用,但不知道差異在哪裡,也深怕有個未知的地雷會踩到。因為這個需求,我今天寫了 4 種不同程式語言的字串比對差異比較,看的懂程式碼的話,未來應該就知道這幾種語言字串比對的差異在哪裡了。

... 繼續閱讀 ...

前端工程研究:關於 JavaScript 的物件藍圖建立方法

我們都知道 JavaScript 物件建立的過程,大多都不需要事先設計「藍圖」就可以建立「物件」,不像 C#Java 等強型別語言,需要先設計「藍圖」(也就是類別),才能產生物件。在 ES2015 出來之前,並沒有 class 語法,而是使採用以原型為基礎的物件導向設計模式 (Prototype-based OO)。本篇文章將介紹幾種在 JavaScript 裡面建立物件藍圖的方式。

... 繼續閱讀 ...

如何將 Protractor 設定檔 (protractor.conf.js) 加入 TypeScript 型別檢查

現在日常的 JavaScript 已經完全離不開 TypeScript 了,在強型別的保護下,不但不容易寫出錯誤的代碼,還能透過開發工具提供的 IntelliSense 提高開發速度。但是如果手邊的程式碼只能使用 JS 來撰寫,那該怎麼辦呢?像是 Protractor 的設定檔 protractor.conf.js 就是一個典型的例子,本篇文章我將分享如何在現有 JavaScript 檔案下使用 TypeScript 的型別檢查提示。

... 繼續閱讀 ...

一次搞懂單元測試、整合測試、端對端測試之間的差異

網站建置不是件簡單的事,我們都知道網站做好之後,有好多細節需要兼顧,所以許多公司花了大量的時間與金錢,耗用人力對維護中的網站進行不斷的、重複的人工測試,想達到的目的不外乎是希望網站不要出錯,可以給客戶/使用者最好的網站使用體驗。但你是否知道單元測試整合測試端對端測試之間的差異在哪裡?本篇文章將闡述他們之間不同的部分。

... 繼續閱讀 ...

Angular CLI 7.3 使用 ES2015 的 nomodule 屬性載入 Polyfills 函式庫

最近推出的 Angular CLI 7.3 版本,新增了一個相當亮眼的特性。當你的 Angular 應用程式同時要符合 IE 或舊版瀏覽器時,以往都會用 Polyfill 來填充缺少的 HTML5/JS APIs,但這件事到了 Angular CLI 7.3 又變得更貼心了。不但如此,這個新特性一樣可以用在各種 SPA 框架中,像是 Vue, React 或其他函式庫也都可以套用相同技巧。欲知詳情請繼續看下去。

... 繼續閱讀 ...

網站如何開始使用 ES6 / ES2015 模組化技術進行前端開發

在 2019 的今天,還有多少人在使用傳統前端技術在開發 Web 應用程式?撇除市面上知名的 SPA 框架不說,就算你公司內部還在使用 jQuery 開發網頁,你依然可以將自己升級到使用現代化前端技術的前端工程師。今天這篇文章,將分享如何將現有傳統網站逐步升級,改用如 ES6 / ES2015 等語法,以及透過好用的模組打包工具(module bundler)將全新的 JS 語法轉譯為舊版瀏覽器也能執行的 JS 語法。

... 繼續閱讀 ...

整理 Unicode 經常會使用到的內碼區域並透過 Regex 自動比對文字

最近有個案子需要設法過濾表單中輸入的文字,有些欄位只能輸入英數字,有些則必須自動轉全形文字,還有些只能輸入中文,有些不允許輸入標點符號。這個需求照理說很簡單,透過 Regular Expression 一下子就可以達陣,但是光是完成這功能實在太無趣了,所以晚上徹底的研究並整理所有的 Unicode 編碼,發現許多有趣的冷知識。

... 繼續閱讀 ...

前端工程研究:理解函式編程核心概念與如何進行 JavaScript 函式編程

函式編程 ( functional programming ) 在這幾年變得有點熱門,像是 React 這套 JavaScript 框架,如果想學好他,通常也都必須要先熟悉函式編程的開發方法才行。畢竟函式編程只是一種程式設計方法,只要程式語言本身可以符合函式編程的基本概念,就可以宣稱用函式編程來開發程式。今天這篇文章,就想以 JavaScript 程式語言為出發,帶大家理解 JavaScript 函式編程的魅力與重要的核心概念。

... 繼續閱讀 ...

前端工程研究:關於 JavaScript 中 Date 型別的常見地雷與建議作法

今天這篇文章,我想來談談 JavaScript 到底如何實作「日期字串」格式解析,日期時間有太多種表達方式,一般人在剛接觸日期格式的時候,都不會想太多跨瀏覽器的問題,通常都是遇到問題的時才來靠北瀏覽器有多爛多爛。有趣的是,有時候還會怪錯對象,例如 XXXX 框架好爛,我寫 JS 這麼久都沒遇過這問題,用了 XXXX 框架才遇到的。現在,我們就開始來對這個說常用不常用,用到時不熟悉的「日期」型別,話說從頭。

... 繼續閱讀 ...

關於 TypeScript 2.0 之後的模組定義檔 ( Declaration Files ) ( *.d.ts )

為了讓 TypeScript 能與目前市面上各種 JavaScript 模組/函式庫一起運作,模組定義檔 ( Declaration Files ) ( *.d.ts ) 是 TypeScript 不可或缺的一部分,從最早期的 TSD (TypeScript Definition manager for DefinitelyTyped) 工具,到去年十月才推出的 typings (The TypeScript Definition Manager) 工具,今年六月 TypeScript 開發團隊決定從 TypeScript 2.0 改用 npm 來管理所有的模組定義檔,有在使用 TypeScript 的開發人員得要注意囉!

... 繼續閱讀 ...