前言 其他編程語言如 Java 等使用 new 命令時,都會調用“類”的構造函數。但是,JavaScript沒有“類”,本身並不提供一個 class 實現(雖然在ES6中提供了class 關鍵字,但其只是語法糖,JavaScript仍然是基於原型的)。於是,JavaScript作了一個簡化的思想,new 命令後面跟的不是類,而是構造函數,用構造函數生成實例對象,但其缺點是無法共享屬性和方法。於是
前言 在日常項目開發過程中,跨域以及如何解決跨域問題是前後端開發同學繞不開的話題。JSONP 跨域就是一種經典的解決跨域問題的方案。 💡温馨提示:本文全文 1921 個字,推薦閲讀時間 10min ,加油老鐵! 一、同源策略和跨域 1.1 同源策略 1.1.1 什麼是同源 如果兩個頁面的協議,域名和端口都相同,則兩個頁面具有相同的源 例如,下表給出了相對於 http://www.test
你是否曾經好奇過瀏覽器是如何渲染網頁的?本文將通過 30 張圖將帶你瞭解瀏覽器渲染進程的內部工作機制。 渲染進程負責處理標籤頁中的所有內容。 在渲染進程中,主線程處理大部分發送給用户的代碼。如果使用 Web Worker 或 Service Worker,部分 JavaScript 會由工作線程處理。另外,合成器線程和光柵化線程也在渲染進程中運行,確保網頁高效、流暢地渲染。 渲染進程的核心任務是將
前言 能夠手撕各種JavaScript原生函數,可以説是進大廠必備!同時對JavaScript源碼的學習和實現也能幫助我們快速紮實地提升自己的前端編程能力。 最近很多人和我一樣在積極地準備前端面試筆試,所以就整理了一些前端面試筆試中非常容易被問到的原生函數實現和各種前端原理實現,其中部分源碼戳這裏。 實現一個new操作符 我們首先知道new做了什麼: 創建一個空的簡單JavaScript對象
前言 前端面試和筆試中被問到最多的算法可能就是各種排序算法了,算法並不難,平時經常用到,但很多時候很少會去認真考慮算法優劣性和適應場景,真正一個一個去分析也需要花不少時時間,所以趁年末有空,不如再複習一遍排序算法。 所有排序算法讀者可自行嘗試coding,想看源碼戳這裏。此文配合源碼體驗更佳! 排序算法評價標準 時間複雜度 一個算法語句總的執行次數是關於問題規模N的某個函數,記為f(N),N稱為問
引語 最近在社區閲讀技術博客的時候偶然間看到了函數柯里化幾個字,還有要求手寫js函數柯里化,心想是柯里化是什麼高級的東西?沒聽説過啊? 就帶着問題出發,專門去學習了一下,做了一些整理。 什麼是函數柯里化? 什麼是函數柯里化?先看看維基百科如何解釋: 在計算機科學中,柯里化(英語:Currying),又譯為卡瑞化或加里化,是把接受多個參數的函數變換成接受一個單一參數(最初函數的第一個參數)的函數
一動不動是王八,上一篇文章學習了那麼久Promise,是時候大顯身手了! 基礎題 題一 const promise = new Promise((resolve, reject) = { console.log(1) resolve() console.log(2) }) promise.then(() = { console.log(3) }) console.
什麼是web標準? WEB標準不是某一個標準,而是一系列標準的集合。網頁主要由三部分組成:結構(Structure)、表現(Presentation)和行為 (Behavior)。 對應的標準也分三方面:結構化標準語言主要包括XHTML和XML,表現標準語言主要包括CSS,行為標準主要包括對象模型(如 W3C DOM)、ECMAScript等。這些標準大部分由W3C起草和發佈