原创 http與https區別及https原理

這裏寫自定義目錄標題http與httpshttps原理 http與https http是明文傳輸,容易被劫持不安全;https是加密後傳輸的相對較安全 https原理 客戶端向服務端發送自身已經存在的加密算法列表和隨機數A 服務

原创 TCP三次握手

連接建立階段: 第一次握手:客戶端的應用進程主動打開,並向服務端發出請求報文段。其首部中:SYN=1,seq=x。 第二次握手:服務器應用進程被動打開。若同意客戶端的請求,則發回確認報文,其首部中:SYN=1,ACK=1,ack=

原创 Array .prototype .flat()

flat() 方法會按照一個可指定的深度遞歸遍歷數組,並將所有元素與遍歷到的子數組中的元素合併爲一個新數組返回。 語法節 var newArray = arr.flat(depth) 參數節 depth 可選 指定要提取嵌套數組的

原创 Node.js 中的 Buffer 對象及其內存分配

Buffer 是一個 Javascript 與 C++ 結合的模塊,它將性能相關部分用 C++ 實現,將非性能相關的部分用 Javascript 實現。 Buffer 所佔用的內存不是通過 V8 分配的,屬於堆外內存。由於 Buf

原创 閉包

閉包,官方對閉包的解釋是:一個擁有許多變量和綁定了這些變量的環境的表達式(通常是一個函數),因而這些變量也是該表達式的一部分。閉包的特點: 作爲一個函數變量的一個引用,當函數返回時,其處於激活狀態。 一個閉包就是當一個函數返回時

原创 JS數組去重的六種方法

一、利用ES6 Set去重(ES6中最常用) function unique (arr) { return Array.from(new Set(arr)) } var arr = [1,1,'true','true',tru

原创 判斷是否爲數組

在說明如何判斷一個對象爲數組類型前,我們先鞏固下js的數據類型,js一共有六大數據類型:number、string、object、Boolean、null、undefined。 除了前四個類型外,null、對象、數組返回的都是ob

原创 淺拷貝和深拷貝

淺拷貝 淺拷貝可以簡單理解爲,發生在棧中的拷貝行爲,只能拷貝基本值和引用值的地址。 實現方式 ES6 定義了 Object.assign() 方法來實現淺拷貝。 例子: let a = { name: "Tom", obj

原创 前端基礎面試題收集

HTML基礎 1、什麼是<!DOCTYPE >?是否需要在HTML5中使用? <!DOCTYPE>是關於頁面寫入了什麼版本的HTML的指令。<!DOCTYPE>標記沒有結束標記,它不區分大小寫。 2、HTML5有哪些的新特性?

原创 js中的原生元素選擇器

當我們想要選擇dom中的元素時,第一個想到的就是document.getElementById()和document.getElementsByTagName(),還有針對表單的document.getElementsByName

原创 函數形參與表達式"()"

形參和實參是映射關係不管誰改都會變, 括號裏面的表達式寫有多個會返回最後一個 (1,2,3)==3

原创 react-router的幾種配置方式

路由的概念 路由的作用就是將url和函數進行映射,在單頁面應用中路由是必不可少的部分,路由配置就是一組指令,用來告訴router如何匹配url,以及對應的函數映射,即執行對應的代碼。 react-router 每一門JS框架都會有

原创 call、apply、bind方法詳解

在 javascript 中,call 和 apply 都是爲了改變某個函數運行時的上下文(context)而存在的,換句話說,就是爲了改變函數體內部 this 的指向。 bind()最簡單的用法是創建一個函數,使這個函數不論怎麼

原创 async 函數的含義和用法

1、async 函數就是 Generator 函數的語法糖,async 函數就是將 Generator 函數的星號(*)替換成 async,將 yield 替換成 await,僅此而已 2、async 函數的實現,就是將 Gene