原生js大總結十一

2022-07-21 17:30:21 字數 1541 閱讀 4093

101、請簡述prototype、__proto__ constructor三者的關係

1、prototype:

每乙個函式都有乙個prototype這個屬性,而這個屬性指向乙個物件,這個物件我們叫做原型物件

作用:a、節約記憶體

b、擴充套件屬性和方法

c、可以實現類之間的繼承

2、__proto__

1、每乙個物件都有乙個__proto__屬性

2、__proto__指向建立自己的那個建構函式的原型物件

3、物件可以直接訪問__proto__裡面的屬性和方法

3、constructor:

指向建立自己的那個建構函式

總結:當我們建立乙個建構函式的時候這個建構函式自帶了乙個prototype屬性,而這個屬性指向乙個物件,也就是原型物件。

這個原型物件裡面有乙個constructor構造器,它的作用是指向建立自己的建構函式。除此之外prototype還可以存放公共的屬性和方法。

當我們例項化乙個物件的時候,這個物件自帶了乙個__proto__屬性,這個__proto__指向建立自己的建構函式的原型物件。可以使用這個原型物件裡面的屬性和方法

102、請寫出方法繼承的方式

2、原型物件繼承

3、原型拷貝繼承

4、原型鏈繼承

5、混合繼承

6、繼承繼承

7、es6 class  super()

注意:以上方法用**表示 不允許寫文字

bind:bind繫結完this的指向後會返回乙個新的函式體,不會被立即呼叫

call:第乙個引數是this的指向,第二個以及後面的所有引數需要乙個個進行傳遞

104、請解釋一下什麼叫同源策略,以及為什麼瀏覽器會有同源策略

同源策略是瀏覽器的乙個安全功能,不同源的客戶端在沒有授權的情況下,不能讀取對方資源

為了保障資料的安全,即非同源網頁不可請求

105、什麼是閉包?用途?注意的地方?

1、閉包就是可以讀取其他函式內部變數的函式

2、可以讀取函式內部的區域性變數 2、讓這些變數始終保持在記憶體當中

3、由於閉包會使得函式中的變數都被儲存在記憶體當中,記憶體會消耗很大,所以不能夠濫用閉包,否則會造成網頁效能的問題

106、設計模式(**自己完善)

1、單例模式:

保證程式中,使用該模式的類只有乙個例項

**....

2、**模式:

**....

3、觀察者模式:

某個人--->觀察某件事件---》事情發生變化---》通知這個人---》去做某件事情

**....

107、什麼是預載入&&懶載入

懶載入:

當訪問乙個頁面的時候,先把img元素或是其他元素的背景路徑替換成一張大小為1*1px的路徑(這樣就只需請求一次,俗稱佔位圖),只有當出現在瀏覽器的可視區域內時,才設定正真的路徑,讓顯示出來。這就是懶載入。

實現原理:

1、將位址放在元素的自定義屬性中

2、當頁面載入完成後,根據scrolltop判斷是否在使用者的視野內,如果在就取出屬性值放到src屬性中

預載入:

原生js大總結十

91 ajax的優點 a 提高執行效率 b 提高使用者體驗,讓多件事情同時發生 c 在不重新整理頁面的情況下可以對區域性資料進行載入和重新整理 92 ajax請求的流程 1 建立通訊物件 a ie7及其以上版本中支援原生的 xhr 物件,因此可以直接使用 b ie6及其之前版本中,xhr物件是通過m...

原生js大總結五

041 在js中如何用方法將10進製的字元轉換成16進製制和8進製 數字.tostring 16 數字.tostring 8 042 如何建立時間物件 new date 043 如何建立未來或者過去的時間物件 var d new date 2017 10 20 22 22 22 var d new ...

原生js總結 乾貨

1.js基本資料型別 number string boolean underfined null 2.查詢文件中的特定元素 document.getelementbyid id document.getelementbytagname div document.getelementbyclassna...