@Javascript

Stories List
@thjjames

前端腳手架(簡易版)搭建攻略

簡介 腳手架CLI(command-line-interface)是一類快速形成工程化目錄的工具。 開發過程中,如果需要新建前端項目,我們經常都會用到腳手架來創建工程,通過命令行式的交互,可快速選擇選項並完成初始項目的搭建。而CV大法往往會帶來很多重複的刪減工作,且會導致項目分散、架構不統一等等弊端。 常見的主流框架都有自己的腳手架: create-vite @vue/cli create

thjjames Avatar

@thjjames

Nickname 小皇帝James

@taohongjie

關於 Javascript 中 this 指向的個人總結

JavaScript中的this關鍵字表示當前執行上下文中的對象。this的指向可以根據不同的情況而變化,以下是幾種常見情況: 1. 全局上下文中 全局上下文中: 當在全局作用域中使用this時,它通常指向window對象(在瀏覽器環境中)。例如: console.log(this); // 在瀏覽器中通常指向window對象 2. 函數中 函數中: this在函數內部的指向取決於函數的調用

taohongjie Avatar

@taohongjie

Nickname 特拉瓦爾多

@jump_and_jump

聊聊前端框架的未來 Signals

Signals 在目前前端框架的選型中遙遙領先! 國慶節前最後一週在 Code Review 新同學的 React 代碼,發現他想通過 memo 和 useCallback 只渲染被修改的子組件部分。事實上該功能在 React 中是難以做到的。因為 React 狀態變化後,會重新執行 render 函數。也就是在組件中調用 setState 之後,整個函數將會重新執行一次。 React 本身做不到

jump_and_jump Avatar

@jump_and_jump

Nickname jump__jump

@tanking

php實現callback跨域請求jsonp數據

摘要 JSONP 是 JSON with Padding 的縮寫,是一種解決跨域數據獲取的方案。由於瀏覽器的同源策略限制,不同域名之間的前端JS代碼不能相互訪問到對方的數據,JSONP通過script標籤的特性,實現在不同域名的網頁間傳遞數據。 其原理是在客户端頁面上定義一個回調函數 (callback),然後通過script標籤向外部服務器請求數據,並將定義好的回調函數名稱作為參數放在url請求

tanking Avatar

@tanking

Nickname TANKING

@zhaoxiaoman

__proto__,constructor,prototype

__proto__(實際原型)和prototype(原型屬性)不一樣!!! constructor屬性(原型對象中包含這個屬性,實例當中也同樣會繼承這個屬性) prototype屬性(constructor.prototype原型對象) __proto__屬性(實例指向原型對象的指針) 首先弄清楚幾個概念: 什麼是對象? 若干屬性的集合 什麼是原型? 原型是一個對象,其他對象可以

zhaoxiaoman Avatar

@zhaoxiaoman

Nickname 漫姐賊6

@moyuzai_zxp616510038

【十四】CSS3新特性

前言 本篇章主要講述CSS3新特性,如svg、canvans以及動畫。 面試回答 1.canvas畫圓:首先獲取canvas對象,設置好寬高,用getContext方法設置2d繪圖,然後用arc方法進行繪製,arc的參數分別是圓心的x,y座標、半徑、以x軸為基準的起始角度以及結束角度,這裏設置,0到2π即可。 知識點 1.SVG 參考博客:https://juejin.cn/post/684490

moyuzai_zxp616510038 Avatar

@moyuzai_zxp616510038

Nickname 馳驥

@moyuzai_zxp616510038

【十五】CSS性能

前言 本篇章來源於https://juejin.cn/post/7077347573740077069,內容只是經過咀嚼便於自己理解。 面試回答 1.重繪重排:簡單來説重繪就是改變某個節點的樣式,重排就是改變某些節點的佈局,比如元素尺寸變動、元素位置變動以及瀏覽器窗口變動。所以重排一定會引起重繪,而重繪不一定引起重排。減少重繪重排的方式主要是通過集中修改css來完成,比如將樣式統一放在clas

moyuzai_zxp616510038 Avatar

@moyuzai_zxp616510038

Nickname 馳驥

@nanchengfe

基於 Letterize.js + Anime.js 實現炫酷文本特效

如上面gif動圖所示,這是一個很炫酷的文字動畫效果,文字的每個字符呈波浪式的擴散式展開。本次文章將解讀如何實現這個炫酷的文字效果。 基於以上的截圖效果可以分析出以下是本次要實現的主要幾點: 文案呈圓環狀擴散開,擴散的同時文字變小 文字之間的間距從中心逐個擴散開,間距變大 文案呈圓環狀擴散開,擴散的同時文字變大 文字之間的間距從中心逐個聚攏,間距變小 動畫重複執行以上4個步驟 實現過

nanchengfe Avatar

@nanchengfe

Nickname 南城FE

@zzd41

Next.js 超實用進階技巧【持續更新】

hello 大家好,我是 superZidan,這篇文章想跟大家聊聊Next.js 進階技巧,如果大家遇到任何問題,歡迎 聯繫我或者直接微信添加superZidan41 🔥🔥🔥前方高能,乾貨滿滿,建議點贊➕關注➕收藏;後續還會 持續更新更多技巧和案例 温馨提示:如果你還是個 Next.js 新手,建議先閲讀這篇 Next.js 最佳實踐,照着這篇文章先把代碼敲一遍 Next.js 是一個強

zzd41 Avatar

@zzd41

Nickname superZidan

@jdcdevloper

深入跨域 - 從初識到入門 | 京東物流技術團隊

前言 跨域這兩個字就像一塊狗皮膏藥一樣黏在每一個前端開發者身上,無論你在工作上或者面試中無可避免會遇到這個問題。如果在網上搜索跨域問題,會出現許許多多方案,這些方案有好有壞,但是對於闡述跨域的原理和在什麼情況下需要用什麼方案,缺少系統性的説明。大家在工作中可能因為大佬們已經配置好了,不會產生跨域,但是作為一個前端的開發人員,面對跨域的問題,還是需要從原理上去理解跨域的原因,在不同的情況中,我們該如

jdcdevloper Avatar

@jdcdevloper

Nickname 京東雲開發者

@tinyang

js遞歸遍歷數組並判斷數組中的每一項如果都不為空則返回true,只要有一項為空則返回false

js遞歸遍歷數組並判斷數組中的每一項如果都不為空則返回true,只要有一項為空則返回false。一開始看到這樣的場景我就覺得很簡單沒難度,可真正上手才發現並不那麼簡單,而且想要讓代碼健壯就又複雜了些。於是經過一個小時的努力加不斷修改、增補,總算實現了自己想要的一個方法。 代碼如下: const isArrayEmpty = arr = { if (!Array.isArray(arr) ||

tinyang Avatar

@tinyang

Nickname 豫見世家公子

@jdcdevloper

前端技術探秘-Nodejs的CommonJS規範實現原理 | 京東物流技術團隊

瞭解Node.js Node.js是一個基於ChromeV8引擎的JavaScript運行環境,使用了一個事件驅動、非阻塞式I/O模型,讓JavaScript 運行在服務端的開發平台,它讓JavaScript成為與PHP、Python、Perl、Ruby等服務端語言平起平坐的腳本語言。Node中增添了很多內置的模塊,提供各種各樣的功能,同時也提供許多第三方模塊。 模塊的問題 為什麼要有模塊 複雜的

jdcdevloper Avatar

@jdcdevloper

Nickname 京東雲開發者

@papermoon

nodejs 基於JWT的token認證

萬惡之源: 阿里雲:基於JWT的token認證 有需求需要連接java服務器的API,對接的小夥伴給出的教程如上。 仔細看完大致流程是服務端生成JWK(當然也可以用https://mkjwk.org 在線生成),客户端自行添加載荷和頭加密並簽名生成token用以校驗。 但是文中只提供了java實現(keypair還拼錯了一次),無法作為nodejs的參考。 查看了下如何用node

papermoon Avatar

@papermoon

Nickname papermoon

@webinfoq

瞭解關鍵區別:await vs return vs return await

異步編程是現代 JavaScript 開發中一個重要方面,它使我們能夠處理耗時的操作,而不會阻塞其他任務的執行。使用異步函數時,我們會遇到三個重要的關鍵字:await 、return、return await。在本文中,我們將探討這些關鍵字之間的差異,並討論何時使用每個關鍵字。 在深入探討細節之前,讓我們先闡明一下異步函數的用途。異步函數是一種特殊類型的函數,可以使用 await 關鍵字。它允許我

webinfoq Avatar

@webinfoq

Nickname 破曉L

@jungang

瞭解JavaScript閉包機制

介紹 JavaScript中的閉包是一種強大的概念,它允許我們在函數內部創建和訪問私有變量,並且可以在函數外部繼續使用這些變量。理解閉包的工作原理對於編寫高質量的JavaScript代碼至關重要。本文將深入探討JavaScript閉包的機制,並結合最佳實踐和代碼示例進行詳細説明。 什麼是閉包? 閉包是指函數能夠訪問並操作其詞法作用域外部的變量的能力。當一個函數內部定義了另一個函數,並且內部函數引用

jungang Avatar

@jungang

Nickname jungang

@guisijun

JavaScript中的this指向哪?

大家好,我是歸思君 一、引言 this可以説是前端開發中比較常見的一個關鍵字,由於其指向是在運行時才確定,所以大家在開發中判斷其方向時也會很模糊,今天就把this的指向問題拆開了,揉碎了,好好講一講。 先來看一個場景,看看該處的 this 應該指向哪:首先在 request.js 中定義一個 getAction 函數 export function getAction(url,paramet

guisijun Avatar

@guisijun

Nickname 歸思君

@invalidnull

node.js 項目中執行 npm install 命令後看到的 idealTree inflate 的含義

隱身窗口是Chrome瀏覽器的一項隱私功能,它允許用户在瀏覽網頁時保護個人隱私。當用户在隱身窗口中瀏覽時,瀏覽器不會保存瀏覽歷史、搜索歷史、下載記錄以及填寫的表單數據。這一功能有助於用户在不留下痕跡的情況下訪問網頁,尤其是在共享計算機或公共場所使用時更為重要。 隱身窗口的核心特性 不保留瀏覽歷史記錄: 隱身窗口模式下,Chrome瀏覽器不會保存用户的瀏覽歷史記錄。這意味着在關閉隱身窗口後,之前

invalidnull Avatar

@invalidnull

Nickname 註銷

@jdcdevloper

如何利用燭龍和谷歌插件優化CLS(累積佈局偏移) | 京東雲技術團隊

簡介 CLS 衡量的是頁面的整個生命週期內發生的每次意外佈局偏移的最大突發性_佈局偏移分數_。佈局變化的發生是因為瀏覽器傾向於異步加載頁面元素。更重要的是,您的頁面上可能存在一些初始尺寸未知的媒體元素。這種組合意味着瀏覽器在加載完成之前無法確定單個元素將佔用多少空間。因此,這種不確定性帶來的劇烈佈局轉變就會導致一個高的CLS分數,也就説明用户體驗將會很糟糕。 累積佈局偏移的計算公式 = 影響比例*

jdcdevloper Avatar

@jdcdevloper

Nickname 京東雲開發者

@jdcdevloper

解析$nextTick魔力,為啥大家都愛它?

1.為什麼需要使用$nextTick? 首先我們來看看官方對於$nextTick的定義: 在下次 DOM 更新循環結束之後執行延遲迴調。在修改數據之後立即使用這個方法,獲取更新後的 DOM。 由於vue的試圖渲染是異步的,生命週期的created()鈎子函數進行的DOM操作一定要放在Vue.nextTick()的回調函數中,原因是在created()鈎子函數執行的時候DOM其實並未進行渲染,而此時

jdcdevloper Avatar

@jdcdevloper

Nickname 京東雲開發者

@nanchengfe

[譯]優秀的URL設計

本文翻譯自 Examples of Great URL Design,作者:Jim Nielsen, 略有刪改。 以下是Kyle Aster關於URL的設計為何重要的觀點(2010年): URL是通用的。它們可以在Firefox、Chrome、Safari、Internet Explorer、cURL、wget、iPhone、Android中使用,甚至可以寫在便籤上。它們是網絡的一種通用語法,但別

nanchengfe Avatar

@nanchengfe

Nickname 南城FE

@vivo_tech

前端 JS 安全對抗原理與實踐

作者:vivo 互聯網安全團隊- Luo Bingsong 前端代碼都是公開的,為了提高代碼的破解成本、保證JS代碼裏的一些重要邏輯不被居心叵測的人利用,需要使用一些加密和混淆的防護手段。 一、概念解析 1.1 什麼是接口加密 如今這個時代,數據已經變得越來越重要,網頁和APP是主流的數據載體,如果獲取數據的接口沒有設置任何的保護措施的話,數據就會被輕易地竊取或篡改。 除了數據泄露外,一些重要功能

vivo_tech Avatar

@vivo_tech

Nickname vivo互聯網技術

@nanchengfe

2023 年最受歡迎的 12 款 Chrome 瀏覽器擴展

谷歌瀏覽器Chrome是目前最受歡迎的瀏覽器之一,而瀏覽器擴展則是為了提升用户體驗和功能而開發的插件。 2023年穀歌公佈了12款最受歡迎的Chrome瀏覽器擴展。每個都提供獨特的功能來增強您的瀏覽體驗。以下是它們的詳細介紹: Speechify:將Google文檔、PDF、網頁或書籍轉換成語音,擁有30多種語言的自然發音聲音。 QuillBot:一套AI驅動的寫作工具,包括語法檢查

nanchengfe Avatar

@nanchengfe

Nickname 南城FE

@guisijun

聊一聊 JavaScript 中的作用域和閉包

哈嘍大家好,我是歸思君~ 一、引言 我們知道,作用域(Scope)就是代碼中變量和函數的可訪問的區域,這個區域中決定了變量和函數的生命週期。在當前的高級程序語言中,主要有詞法作用域(靜態作用域)和動態作用域兩種。 靜態作用域:其作用域是在編寫代碼時就已經確定好,靜態作用域是根據變量和函數在代碼中的位置來決定。函數尋找變量時,是在函數定義的位置中尋找,而不是調用的位置。現在大多數編程語言都採用的

guisijun Avatar

@guisijun

Nickname 歸思君

@wswx

單調棧模板和適用範圍

刷力扣時,遇到關鍵詞:下一個更大/小的數這類題目時,往往會採用單調棧的解法,如每日温度 刷題最常見的問題就是,看到題解,感覺很精妙,但下次遇到一模一樣的題目時,往往知道思路,但寫不出代碼,有或者遇到類似的變體題目時,不會往這方面想。這兩種情況在之前的文章(數據結構算法小結)中提到過,分別有兩方面的原因: 對工具(如單調棧知識點)的特性(適用範圍)不明朗 對工具的原理沒有真正的理解 初學單調

wswx Avatar

@wswx

Nickname goblin_pitcher