前言 JavaScript 原型與原型鏈雖然是一個老生常談的話題,但依然困惑着很多人,今天我再來從另一個角度談談這個問題。 兩個疑問 先看這樣一段代碼: let obj = {} obj.__proto__.haha = 'gogo' console.log(obj.haha) // "gogo" 運行一下上面的代碼,輸出結果為 gogo。 針對這個結果,有以下疑問: obj 哪來的 __p
前言 如果我們選擇不使用任何框架的情況下來進行前端開發,那麼針對一個完整的網頁,我們需要開發以下代碼: HTML 代碼 CSS 代碼 JavaScript 代碼 就幾年之前來説,HTML 部分的代碼基本不存在複用的可能,這就導致我們可能需要開發大量重複的 HTML 代碼,即使使用 CV 法,代碼的冗餘卻是不可避免的。 Web Components 誕生的背景 近幾年,我們在使用前端框架(
構建其實是工程化、自動化思想在前端開發中的體現,把一系列流程用代碼去實現,讓代碼自動化地執行這一系列複雜的流程。 構建給前端開發注入了更大的活力,解放了我們的生產力。 Webpack 憑藉強大的功能與良好的使用體驗,已經成為目前最流行,社區最活躍的構建工具,是現代 Web 開發必須掌握的技能之一。 背景 在當下的前端環境裏,各種框架和工具層出不窮,比如 React、Vue、Angular 等,極大
WebSockets 是一種先進的技術。它可以在用户的瀏覽器和服務器之間打開交互式通信會話。使用此API,您可以向服務器發送消息並接收事件驅動的響應,而無需通過輪詢服務器的方式以獲得響應。 何為 WebSocket 對象? WebSocket 對象是 WebSockets 的接口之一,用於連接WebSocket服務器的主要接口,之後可以在這個連接上發送 和接受數據。 WebSocket 對
JavaScript 中的 for 循環語句相信大家都已經快用厭了,現在有好多文章都在講怎麼減少代碼中的 for 循環語句,但是,你又不得不承認它們真的很有用。今天,我來總結一下前端 JavaScript 中三種 for 循環語句。 for 這大概是應用最廣的循環語句了吧,簡單實用,且大多數時候性能還是在線的,唯一的缺點大概就是太普通,沒有特色,導致很多人現在不願用它。 const array =
前言 記得剛找工作那會,幾種數據類型是必問題,當時的答案一般都是七種——字符串(String)、數字(Number)、布爾(Boolean)、數組(Array)、對象(Object)、空(Null)、未定義(Undefined),時至今日,某些網絡教程上還是這樣的分類: 其實,隨着 ECMAScript 的發展和完善,在 ES6(2015) 和 ES11(2020) 中,又分別增加了 Symbo
背景 複雜的網站都會有大量的CSS代碼,通常也會有許多重複的值。 舉個例子,同樣一個顏色值可能在成千上百個地方被使用到,如果這個值發生了變化,需要全局搜索並且一個一個替換,效率不高且容易出錯。 自定義屬性在某個地方存儲一個值,然後在其他許多地方引用它。另一個好處是語義化的標識。比如,--main-text-color 會比 #00ff00 更易理解,尤其是這個顏色值在其他上下文中也被使用到。 概
CSS 是用於網頁設計可用的最強大的工具之一。使用它我們可以在幾分鐘內改變一個網站的界面,而不用改變頁面的標籤。 好一段時間不用 CSS ,有一些基礎知識的記憶有點模糊了,今天再做一次總結記錄,方便日後回顧複習。 選擇器分類 在 CSS 中,選擇器可分為以下幾類: 基本選擇器(通配選擇器、元素選擇器、類選擇器、ID 選擇器、羣組選擇器) 層次選擇器 屬性選擇器 偽類選擇器 偽元素
在 NodeJS 中有一個方法是我們使用頻率最高的,那就是 require 方法。NodeJs 遵循 CommonJS 規範,該規範的核心是通過 require來加載其他依賴的模塊。 幾個問題 module.exports 或者 exports 是全局變量嗎? 模塊的加載是同步還是異步? 循環引用會不會產生性能問題或者導致錯誤? 什麼是 CommonJS 每一個文件就是一個模塊,擁有自己
完整閲讀本文大約需要二十分鐘時間,可根據文章結構圖直接閲讀自己需要的部分。 1. Cookie 產生的背景 所有新技術的出現都是為了解決某一痛點。 ——《前端三昧》 我們都知道,HTTP 協議是無狀態的,服務器無法知道兩個請求是否來自同一個瀏覽器,也不知道用户上一次做了什麼,每次請求都是完全相互獨立,這嚴重阻礙了交互式 Web 應用程序的實現。例子: 購物車:在典型的網上購物場景中,用户瀏覽