首先回答了let
與const
let
定義變量,相對於var
,它修復了一些問題,好比變量提高、重複定義等問題,而且constconst
`let`的定義具備塊級做用域;前端
const
定義常量,可是const
定義的常量只是值不可變,即基本數據類型不可變,對於引用類型,由於它創建的是引用,因此即便使用const
定義的對象,其屬性仍是可變的(這個當時在論客科技的時候就有被追問到);vue而後就說到Promise相關正則表達式
首先Promise有三個狀態
Pending
Fullfilled
Rejected
,分別是等待狀態、完成狀態和未完成狀態,在Promise中只能由等待狀態轉換成另外一種狀態,例如從Pending -> Fullfilled
爲執行完成,此時會調用then()
;從Pending -> Rejected
爲執行失敗,此時會調用catch()
算法怎樣才能進入到
catch()
中
1.在執行過程當中捕獲到異常,即:vuexnew Promise((resolved, rejected) => { throw new Error('test'); })2.執行了rejected(),即:數組
new Promise((resolved, rejected) => { if (true) { resolved(); } else { rejected(); } })
組件化是具體的:按照一些小功能的通用性和可複用性來抽象組件;
模塊化是抽象的:按照項目業務劃分的大模塊
有多種方法解決session
- 使用一個空的 Vue 實例做爲中央事件總線
- 使用Vuex
- 使用localStorage和SessionStorage
- 區別:
vuex
存儲在內存,localstorage
(本地存儲)則以文件的方式存儲在本地,永久保存;sessionstorage
( 會話存儲 ) ,臨時保存。localstorage
和sessionstorage
只能存儲字符串類型,對於複雜的對象可使用ECMAScript提供的JSON對象的stringify和parse來處理- 應用場景:
vuex
用於組件之間的傳值,localstorage
,sessionstorage
則主要用於不一樣頁面之間的傳值。(其餘頁面更新數據了,當前頁面要刷新才能相應更新,非響應式的)- 永久性:當刷新頁面(這裏的刷新頁面指的是 --> F5刷新,屬於清除內存了)時
vuex
存儲的值會丟失,sessionstorage
頁面關閉後就清除掉了,localstorage
不會。注:不少人以爲用
localstorage
能夠代替vuex
, 對於不變的數據確實能夠,可是當兩個組件共用一個數據源(對象或數組)時,若是其中一個組件改變了該數據源,但願另外一個組件響應該變化時,localstorage
,sessionstorage
沒法作到,緣由就是區別1。模塊化
字符類和範圍類:
咱們能夠經過
[]
來表示一個類,匹配的時候匹配到[]
其中一個便可。
例如[0-9]
表示數字0到9,[a-zA-Z]
表示匹配全部的大小寫字母。
同時咱們能夠在[]
中加入^
表示一個反向類,例如[^9]
表示除了9以外的全部字符組件化預約義類:
. 表示除了回車符和換行符以外的全部字符,等同於
[^\r\n]
\d
表示數字字符,等同於[0-9]
\D
表示非數字字符,等同於[^0-9]
\s
表示空白符,等同於[\t\n\x\f\r]
\S
表示非空白符,等同於[^\t\n\x\f\r]
\w
表示單詞字符(字母數字下劃線),等同於[a-zA-Z_0-9]
\W
表示非單詞字符,等同於[^a-zA-Z_0-9]
spa邊界匹配字符:
^
表示以XXX開始$
表示以XXX結束\b
單詞邊界\B
非單詞邊界量詞:
{n}
出現n次{n,m}
出現n到m次{n,}
至少出現n次?
出現零次或一次(最多出現一次),等價於{0, 1}
+
出現一次或屢次(至少出現一次),等價於{1, }
*
出現零次或屢次(任意次),等價於{0, }
匹配一個手機號的正則:
/^1[34578]\d{9}$/
藉助正則可視化圖片就更加好理解正則了