一,iframe
? <iframe>標簽用于在網頁里面嵌入其他網頁。?
? ?1,sandbox屬性
? ? 如果嵌入的網頁是其他網站的頁面,因不了解對方會執行什么操作,因此就存在安全風險。為了限制<iframe>的風險,HTML 提供了sandbox屬性 。
allow-forms:允許提交表單。
allow-modals:允許提示框,即允許執行window.alert()等會產生彈出提示框的 JavaScript 方法。
allow-popups:允許嵌入的網頁使用window.open()方法彈出窗口。
allow-popups-to-escape-sandbox:允許彈出窗口不受沙箱的限制。
allow-orientation-lock:允許嵌入的網頁用腳本鎖定屏幕的方向,即橫屏或豎屏。
allow-pointer-lock:允許嵌入的網頁使用 Pointer Lock API,鎖定鼠標的移動。
allow-presentation:允許嵌入的網頁使用 Presentation API。
allow-same-origin:不打開該項限制,將使得所有加載的網頁都視為跨域。
allow-scripts:允許嵌入的網頁運行腳本(但不創建彈出窗口)。
allow-storage-access-by-user-activation:sandbox屬性同時設置了這個值和allow-same-origin的情況下,允許<iframe>嵌入的第三方網頁通過用戶發起document.requestStorageAccess()請求,經由 Storage Access API 訪問父窗口的 Cookie。
allow-top-navigation:允許嵌入的網頁對頂級窗口進行導航。
allow-top-navigation-by-user-activation:允許嵌入的網頁對頂級窗口進行導航,但必須由用戶激活。
allow-downloads-without-user-activation:允許在沒有用戶激活的情況下,嵌入的網頁啟動下載。
? ?2,loading屬性
? ? loading屬性是指滾動進入視口以后再加載
auto:瀏覽器的默認行為,與不使用loading屬性效果相同。
lazy:<iframe>的懶加載,即將滾動進入視口時開始加載。
eager:立即加載資源,無論在頁面上的位置如何。
二,https傳輸過程
以下是CA簽證的詳細過程
?
?
首先 CA 會把持有者的公鑰、用途、頒發者、有效時間等信息打成一個包,然后對這些信息進行 Hash 計算,得到一個 Hash 值;
然后 CA 會使用自己的私鑰將該 Hash 值加密,生成 Certificate Signature,也就是 CA 對證書做了簽名;
最后將 Certificate Signature 添加在文件證書上,形成數字證書;
客戶端校驗服務端的數字證書的過程,如上圖右邊部分:
首先客戶端會使用同樣的 Hash 算法獲取該證書的 Hash 值 H1;
通常瀏覽器和操作系統中集成了 CA 的公鑰信息,瀏覽器收到證書后可以使用 CA 的公鑰解密 Certificate Signature 內容,得到一個 Hash 值 H2 ;
最后比較 H1 和 H2,如果值相同,則為可信賴的證書,否則則認為證書不可信。
三,JS數組
1,數組的概念
? ?一組數據的集合。
? ?在數組中可以存放任意類型的數據。每一個數據我們稱之為元素。
? ?每一個元素在數組中是有編號的,這個編號就稱之為下標。
2,數組屬性
(1)length屬性:數組的length屬性,返回數組的成員數量。
(2)in運算符:檢查某個鍵名是否存在的運算符in,適用于對象,也適用于數組。
? ? ? ? ?for...in :遍歷對象,也可以遍歷數組
? ? ? ? for循環,while循環
(3)構造函數
3,聲明定義數組
(1)構造函數
?
4,數組的方法?
? ? ?push:在元素的末尾處添加元素,會修改原數組
?
? ? ? ?pop : 從元素的末尾刪除一個元素,會修改原數組,返回刪除的元素。
?
? ? ?shift:從數組的頭部刪除一個元素,會修改原數組,返回刪除的元素。
?
unshift:在數組的頭部添加一個元素,返回值是插入后,數組的長度。?
?
?concat:將兩個數組中的元素合并為一個新數組,合并完成后,不會修改原數組。
?
?slice:獲取數組中指定區域的元素
?
join: 將數組中的元素,用傳入的分隔符(字符串)拼接成一個新的字符串。
?
reverse:反轉數組,會影響原數組。
?
?sort:對數組進行排序,相當于遍歷數組中的每一個元素,讓當前元素與后面元素進行比較。比較的規則默認是 誰大誰在后面。
?
?【注意】排序是按照Unicode編碼排序的,不是按照數字的大小。
?
四,正則表達式:
^ 表示字符串的開始位置
$ 表示字符串的結束位置
豎線符號(|)在正則表達式中表示“或關系”(OR)
正則表達式中,需要反斜杠轉義的,一共有12個字符:^、.、[、$、(、)、|、*、+、?、{和\
\d 匹配0-9之間的任一數字,相當于[0-9]。
\D 匹配所有0-9以外的字符,相當于[^0-9]。
\w 匹配任意的字母、數字和下劃線,相當于[A-Za-z0-9_]。
\W 除所有字母、數字和下劃線以外的字符,相當于[^A-Za-z0-9_]。
\s 匹配空格(包括換行符、制表符、空格符等),相等于[ \t\r\n\v\f]。
\S 匹配非空格的字符,相當于[^ \t\r\n\v\f]。
\b 匹配詞的邊界。
\B 匹配非詞邊界,即在詞的內部
? 問號表示某個模式出現0次或1次,等同于{0, 1}。
* 星號表示某個模式出現0次或多次,等同于{0,}。
+ 加號表示某個模式出現1次或多次,等同于{1,}。
點字符(.)匹配除回車(\r)、換行(\n) 、行分隔符(\u2028)和段分隔符(\u2029)
五,new、this
1,new:
new命令的作用,就是執行構造函數,返回一個實例對象。
使用new命令時,它后面的函數依次執行下面的步驟。
創建一個空對象,作為將要返回的對象實例。
將這個空對象的原型,指向構造函數的prototype屬性。
將這個空對象賦值給函數內部的this關鍵字。
開始執行構造函數內部的代碼。
也就是說,構造函數內部,this指的是一個新生成的空對象,所有針對this的操作,都會發生在這個空對象上。構造函數之所以叫“構造函數”,就是說這個函數的目的,就是操作一個空對象(即this對象),將其“構造”為需要的樣子。
2,this:
this可以用在構造函數之中,表示實例對象 this,從字面上含義是(指較近的人或事物) 這,這個;this:表示當前對象的一個引用。
? ?
this的指向:this不是固定不變的,是根據調用的上下文(執行時環境)改變而改變。如果單獨使用,this 表示全局對象。
在方法中,this 表示該方法所屬的對象。
在函數中,this 表示全局對象。
在函數中,在嚴格模式下,this 是未定義的(undefined)。
在事件中,this 表示接收事件的元素。
六,同步異步微任務宏任務
(1)js是單線程的,但是分同步異步
(2)微任務和宏任務皆為異步任務,它們都屬于一個隊列 (3)宏任務一般是:script、setTimeout、setInterval、postMessage (4)微任務:Promise.then ES6
先執行同步 再執行異步
(5)先執行同步再執行異步,異步遇到微任務,先執行微任務,執行完后如果沒有微任務,就執行下一個宏任務,如果有微任務,就按順序一個一個執行微任務
(6)宏任務一般是:script、setTimeout、setInterval、postMessage
(7)微任務:Promise.then
————————————————
版權聲明:本文為CSDN博主「Senvenhu」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Senvenhu/article/details/131968622