原创 es6基礎 --- 9、異步編程 promise

異步編程 js中的單線程是指負責執行代碼的線程只有一個,這樣設計的初衷是js是用來操作DOM的,多線程會產生DOM操作衝突。 缺點:執行耗時任務時會阻塞代碼執行,出現假死狀態。 解決:有同步模式和異步模式。JS代碼執行是單線程,但是瀏覽器

原创 es6 export import

 export語句輸出的接口,與其對應的值是動態綁定關係,即通過該接口,可以取到模塊內部實時的值。 具名export/import // 第一種寫法 export var firstName = 'Michael'; export va

原创 js call/apply/bind 及 手寫源碼

call與apply與bind異同 作用:均爲改變this指向 call/bind傳參爲多個參數,apply傳參爲一個參數數組 bind的時候function函數不執行,需手動執行,call/apply的時候函數自動執行 例子 func

原创 es6基礎 --- 8、for of 遍歷 Iterator Generator

遍歷 數組遍歷方法 for  /  forEach(break不生效) 對象遍歷方法 for in ES6中新增 for of,break可以生效,只要實現了Iterator接口,都能被for of遍歷。 例如: 對於數組、Set等,返回

原创 vue vue-router 各個守衛的詳細理解

導航守衛分類 導航守衛按照維度分三個: 全局的:進入任何一個路由都會執行 beforeEach:進入路由前執行 beforeResolve:在導航被確認之前,同時在所有組件內守衛和異步路由組件被解析之後,解析守衛就被調用 afterEac

原创 es6基礎 --- 2、字符串相關:模板字符串及一些方法

模板字符串 `` 可支持多行字符串:直接在 ``內換行即可而不需要\n,對HTML字符串友好 可嵌入變量和JS語句 ${name}  ${1+2} 不需要再拼接字符串啦 let name = 'fang'

原创 js 對象/數組/字符串常見的幾個方法(不熟悉的彙總)

對象 Object.assign() 方法用於對象的合併,將源對象(source)的所有可枚舉屬性,複製到目標對象(target) 常用於引用值淺拷貝Object.assign({}, obj) 給對象新增屬性Object.assign(

原创 js ajax基礎

作用 對頁面的局部內容刷新,且不會進行url跳轉 使用 新建實例 let xhr = new XMLHttpRequest() 定義請求 xhr.open("GET", "https://www.apiopen.top/journalis

原创 es6基礎 --- 7、Set Map Symbol

Set 與Array類似,只是其元素是不能重複的。遍歷可用forEach  for of const s1 = new Set([1,2,3,3]) // 初始化 1 2 3 const s = ne

原创 js location 與 navigator對象

location對象 href: 地址欄 protocol: 協議 host:  主機名端口號 或 域名  hostname: 主機名  port: 端口號 pathname: 路徑, host後、hash前或search前的路徑 ha

原创 es6基礎 --- 3、數組相關:數組解構、數組展開

數組解構 按位置提取相應數據 <script> // 數組解構 const arr = ['foo', 'bar', 'baz']; // 按位置提取 const [foo, bar, baz] = ar

原创 es6基礎 --- 1、var/let/const 區別

let 與 var的區別 let有塊級作用域 es5中有全局作用域、函數作用域,es6中新增了塊級作用域,即用let聲明的變量只能在聲明的{}內訪問到 // let有塊級作用域 for(var i = 0; i

原创 es6基礎 --- 6、Proxy與Reflect vue3.0與2.0 Object.defineProperty的對比

Proxy與Reflect 新建一個代理對象,通過操作代理對象就能操作原對象。Proxy構造函數的兩個參數,一個是需要劫持的對象,一個是操作函數對象。如果不設置操作函數對象,則默認使用Reflect的相關API,也就是說Reflect提供

原创 es6基礎 --- 5、函數相關:參數默認值、剩餘參數、箭頭函數

參數默認值 function foo (enable) { // 通常設置默認參數會通過短路運算符來設置,但如果enable傳入可轉爲false的值時,仍會使用默認值,造成bug let e

原创 es6基礎 --- 4、對象相關:解構、對象字面量、Object.assign

對象解構 通過key值提取相應的value <script> // 對象解構,通過key提取相應value const student = { name: 'lf', age: 18 } co