沐鳴測速註冊_js執行環境與作用域、函數的創建和調用



,每個執行環境對應與之關聯的變量對象。,執行環境:定義變量或函數有權訪問的其他數據。,函數執行過程,某個執行環境在所有代碼執行完畢后,這個執行環境就會被銷毀,保存在其中的所有變量和函數定義也隨之銷毀。,
,變量對象:保存環境中定義的所有變量和函數。,全局執行環境:最外圍的執行環境,在web瀏覽器中,全局執行環境為window對象。,全局變量對象:保存所有window對象下的屬性和方法。,

沐鳴網址_TypeScript的索引類型與映射類型,以及常用工具泛型的實現

鏈接: http://www.fly63.com/article/detial/9892,

沐鳴:_unaipp異步加載數據實現頁面同步

鏈接: http://www.fly63.com/article/detial/9890,

沐鳴平台_Js Array數組ES5/ES6常用方法

 返回:數組的長度,插入的值為數組,變為子數組,改變了原數組,返回:數組的長度,改變了原數組,push():在數組的最後一項后追加值(參數:可以為多個值或數組),1、棧方法(先進后出),
, 返回:刪除的值,改變了原數組,shift():刪除數組的最前一項(無參數),pop(): 刪除數組的最後一項(無參數), 返回:被刪除的值,改變了原數組,unshift():在數組最前一項插入值(參數:可以為多個值或數組), 返回:數組的長度,插入的值為數組,變為子數組,改變了原數組

沐鳴總代平台_V8 引擎垃圾回收與內存分配

簡單看看就行,不重要,既然是講垃圾回收( Garbage Collection 簡稱 GC ),那就要先去回收站了,回收站有個學名叫:
內存,計算機五大硬件之一存儲器的核心之一,見下圖:,
,工欲善其事,必先利其器,本文之器非器具之器,乃容器也,言歸正傳,作為一個前端打工人,左手剛 const 定義常量,忠貞不二,轉頭就 new 幾個對象,玩的火熱,真是個優秀的 jser,風騷的操作背後,必有日夜不輟的 QWER,外加一個走 A,廢話不多說,瀏覽器內核是啥玩意?還不知道都有啥瀏覽器內核?那就先來看看瀏覽器內核。,棧,堆,說句更不重要的,JS 是沒有能力管理內存和垃圾回收的,一切都要依賴各個瀏覽器的 JS 引擎,所以為了逼格更高一點,就不要說 JS 垃圾回收了,你看,我說 V8 垃圾回收,是不是厲害多了(摸了摸越來越沒有阻力的腦袋)。,

,提到瀏覽器內核,Blink、Weikit、Gecko、Trident 張口就來,這些只是各個瀏覽器內核的組成部分之一渲染引擎,對應的還有 JavaScript引擎,簡單羅列一下:,渲染引擎和 js 引擎相互協作,打造出瀏覽器显示的頁面,看下圖:,

,簡單看看就行,不重要,既然是講垃圾回收( Garbage Collection 簡稱 GC ),那就要先去回收站了,回收站有個學名叫:
內存,計算機五大硬件之一存儲器的核心之一,見下圖:

沐鳴平台首頁_axios前端加密通訊的處理

我們再回過頭看看InterceptorManager還合適么?,先談談項目前景,因為安全的要求,所以我們要把前端所有的請求都得加密與服務端應用進行通訊,當然服務端的響應也是加密的,前端也需要對應得解密。,今天談一談前段時間,項目中遇見的前端axios加解密的處理。,axios.interceptors.request.use(req => { // todo 加密 }) axios.interceptors.response.use(rsp => { // todo 解密 }),export function fetch(…args){ if(isSecurity){ return securityAxios(…args); } return defaultAxios(…args); },可以實現,但是還是略為複雜。,
,import Axios from ‘axios/lib/core/Axios’ import axiosBind from ‘axios/lib/helpers/bind’ import axiosUtils from ‘axios/lib/utils’ // todo 導入 加密的securityAxios, 正常的defaultAxios。 // todo 導入 全局變量isSecurity控制是否需要加密 async function requestProxy(…args) { if(isSecurity){ return await securityAxios.request(…args) } return await defaultAxios.request(…args) } function createInstance(defaultConfig) { const context = new Axios(defaultConfig); Object.defineProperty(context, ‘defaults’, { get() { return isSecurity ? securityAxios.defaults : defaultAxios.defaults; }, }) context.request = requestProxy; var instance = axiosBind(requestProxy, context); axiosUtils.extend(instance, Axios.prototype, context); axiosUtils.extend(instance, context); return instance; } const axiosInstance = createInstance(); axiosInstance.axios = axiosInstance; export default axiosInstance;,
,遇見這個需求,或許從axios文檔中,我們第一時間想到的就是InterceptorManager。,但是現在需求升級了,我們要求前端根據服務端的響應狀態碼自動切換加密或者明文通迅。,我們再回過頭看看InterceptorManager還合適么?

沐鳴首頁_簡單介紹下各種 JavaScript 解析器

,
,各種js解析器是前端工程化的基石,可以說如果沒有它,很多工程化都無法正常執行,我們每天用到的babel、webpack、eslint、TypeScript背後都需要一套對應的js解析器,今天我們來看看,目前市場上有哪些常用的解析器,他們各自又擁有什麼特性尼?,1.1 uglify-js ,1.2 Esprima ,** **用於混淆和壓縮代碼,**因為一些原因,uglify-js自己內部實現了一套AST規範[1],也正是因為它的AST是自創的,不是標準的ESTree,es6以後新語法的AST,都不支持,所以沒有辦法壓縮最新的es6的代碼,如果需要壓縮,可以用類似babel這樣的工具先轉換成ES5。,創作時間:2010-8-1 作品地址:https://github.com/mishoo/UglifyJS 作者介紹:Mihai Bazon,Lisp程序員,Emacs愛好者,貌似是羅馬尼亞人 作者博客:,在說js解析器前,我們需要先了解下ESTree這個項目,這個項目的初衷通過社區的力量,保證和es規範的一致性,通過自定義的語法結構來表述JavaScript的AST,後來隨着知名度越來越高,多位知名工程師的參与,使得變成了事實意義上的規範,目前這個庫是Mozilla和社區一起維護的。,如果沒有AST規範,那麼也就意味着根本無法造出對應的解析器,而如果AST規範不統一,一些相應的工具庫就不能很好的互通有無,比如webpack就無法正常的使用babel相關插件。,正是因為EsTree的定義的規範,所以現在所有的js解析器或者編譯器,基本上都繞不開它,如果你有志於自己寫一個js解析器,那它的文檔你一定需要讀一遍。,

沐鳴代理_img標籤到底是行內元素還是塊級元素

鏈接: http://www.fly63.com/article/detial/9868,
,瀏覽器支持,標籤定義及使用說明,

沐鳴測速註冊_彈窗和 window 的方法

,它將打開一個具有給定 URL 的新窗口。大多數現代瀏覽器都配置為在新選項卡中打開 url,而不是單獨的窗口。,彈窗(popup)是向用戶显示其他文檔的最古老的方法之一。基本上,你只需要運行:,在過去,很多惡意網站經常濫用彈窗。一個不好的頁面可能會打開大量帶有廣告的彈窗。因此,現在大多數瀏覽器都會通過阻止彈窗來保護用戶。,彈窗自古以來就存在。最初的想法是,在不關閉主窗口的情況下显示其他內容。目前為止,還有其他方式可以實現這一點:我們可以使用 fetch 動態加載內容,並將其显示在動態生成的 <div> 中。彈窗並不是我們每天都會使用的東西。,並且,彈窗在移動設備上非常棘手,因為移動設備無法同時显示多個窗口。,但仍然有一些任務在使用彈窗,例如進行 OAuth 授權(使用 Google/Facebook/… 登陸),因為:,

沐鳴總代理_Redis不僅僅是緩存,還是……

也許最流行的分佈式內存數據存儲是Redis,它不是緩存,但被當作緩存使用。 引用官方的描述如下:,一段時間以來,巨大數量的數據處理迫使所有的應用程序在數據庫層前添加緩存策略。即使經典數據庫進行了大量的下劃線優化,仍然不能提供足夠的速度和可用性。主要原因在於數據存儲越遠,獲取數據就越困難。另一個原因是因為數據庫中的數據通常保存在磁盤中,而不是在內存。經典數據庫卻是在內存上嵌入了緩存來優化,但是擁有一個專用的獨立緩存也是一種很常用的策略。,你需要一個經典數據庫嗎?,Redis速度很快,它被認為是目前最快的數據存儲之一。它對CPU緩存進行了優化,並且沒有上下文切換。從一開始它就被設計成了內存數據庫,這不僅意味着將數據從磁盤移動到內存,它從一開始就針對性的優化了。,Redis是一個開源的(BSD協議),內存中的數據結構存儲,它可以用作數據庫,緩存,消息代理。它支持的數據結構包括字符串,哈希,列表,集合,有序集合,位圖,超級日誌,具有半徑查詢和流的地理空間索引和流,Redis具有內置複製,Lua腳本,LRU驅逐,事務和不同級別的磁盤持久化,並通過Redis哨兵和Redis集群自動分區。,在解決訪問數據庫的性能問題,通常的解決方案是緩存。緩存並不新鮮,緩存實際上是把經常訪問的少量數據保存在離你更近的地方。我們在處理器上有緩存,數據庫中也有緩存,你甚至可以在自己的應用中編寫緩存。,但隨着事情的發展,現在我們有來高可用的分佈式內存緩存,可以被不同的實例同時使用。,緩存——Redis,也許最流行的分佈式內存數據存儲是Redis,它不是緩存,但被當作緩存使用。 引用官方的描述如下: