前端js常見面試題

2022-09-23 14:36:09 字數 1785 閱讀 2512

not a number 不是乙個數字,但是數值型別

+> nan 與其他數值進行比較的結果總是不相等的,包括它自身在內

var宣告的變數會掛載在window上,而let和const宣告的變數不會

var宣告變數存在變數提公升,let和const不存在變數提公升

let和const宣告形成塊作用域

同一作用域下let和const不能宣告同名變數,而var可以

使用let/const宣告的變數在當前作用域存在暫存死區

const一旦宣告必須賦值,不能使用null佔位,宣告後不能再修改,如果宣告的是復合型別資料,可以修改其屬性

閉包的使用場景

閉包的優缺點

new會建立乙個空物件

new會將建構函式內部this指向到這個建立出來的物件

new會將建立物件的__proto__指向建構函式的prototype

new會返回這個建立出來的物件

快取機制是瀏覽器自帶的機制,瀏覽器會將get請求訪問到的資源快取到本地,這樣做的目的是為了提高使用者的訪問速度和節約使用者的流量。

但是快取也會造成一些問題,有時候服務端檔案發生變化名稱還是之前老的名字,瀏覽器無法識別這個檔案的變化,還會使用快取中的檔案。

為了解決這個問題我們有時候需要在請求的過程中告訴瀏覽器我們不使用快取,針對於get請求只要每次攜帶的引數變化瀏覽器就不會使用快取檔案,認為你要獲取新的資料。

什麼是跨域?

跨域的解決方案

jsonp

配置反向**

後端配置cors

什麼是事件委託

使用場景

ajax請求到的資料動態渲染到頁面

js動態建立插入頁面的

如何實現事件委託原型概念

每乙個函式都有乙個prototype屬性,建構函式也有這個屬性

每乙個物件都有乙個__proto__屬性,例項化物件也有這個屬性

每個例項化物件的__proto__指向建構函式的prototype

原型鏈概念

每乙個物件訪問屬性和方法的時候會優先使用自己的屬性和方法

自身沒有這個屬性和方法會去它的__proto__裡面找這個屬性和方法,這一層的__proto__就是它建構函式的prototype

如果這一層沒有會繼續往下一層__proto__裡面找 下一層的__proto__就是它父類建構函式的prototype

一直找到最上層建構函式object,它的原型指向null,所以原型鏈頂層是null,這是屬性會出現undefined方法會報錯

儲存大小有限制,一般是4kb左右,數量有限制,一般是 50 條左右

有時效性,也就是有過期時間,預設的過期是session級別

有網域名稱限制,只能在域下面儲存,無法在本地儲存,當前域只能使用自己域下面的cookie,無法訪問其他域的cookie

服務端和客戶端公用的空間,一般存放一些前後端公用的資料

cookie一般儲存比較重要的資料,前後端公用的資料,有一定的大小限制(4kb),有過期時間

localstorage和sessionstorage儲存的資料只能前端使用,相對於比較大(5m)

localstorage儲存的資料是永久的,除非使用者自己手動清除快取,否則會一直存在。sessionstorage儲存的資料是會話級別的,關閉瀏覽器就會自動刪除

參考部落格-防抖和節流的區別

借助建構函式實現繼承

優點:缺點:

原型鏈繼承

缺點:組合繼承

雖然會呼叫兩次但是沒有太大影響

使用es6的class和extends關鍵字實現繼承

前端常見面試題 js中phototype

1.prototype原型 原型法主要思想 現在有乙個類a.想建立乙個類b.類b是以類a為原型,並且能進行擴充套件。則稱b的原型為a.2.原型物件 任何函式在建立的時候,其實會預設同時建立該函式的prototype物件。3.什麼時候使用prototype prototype使用好處 是不會額外產生記...

前端常見面試題一

js事件委託就是利用冒泡的原理,把本應該新增到某個元素上的事件委託給他的父級,從而減少dom互動達到網頁優化 var ulobj document.getelementbyid list ulobj.onclick function e nodename 屬性可依據節點的型別返回其名稱。如果節點是乙...

高階前端常見面試題

1 請介紹一下回流 reflow 與重繪 repaint 回流 當我們對 dom 的修改引發了 dom 幾何尺寸的變化 比如修改元素的寬 高或隱藏元素 等 時,瀏覽器需要重新計算元素的幾何屬性 其他元素的幾何屬性和位置也會因此受到影 響 然後再將計算的結果繪製出來。這個過程就是回流 也叫重排 重繪 ...