web前端面試題

web前端面試題

1、前端如何實現優化性能

(1)減少網絡時間 ①使用DNS緩存技術 ? ②減少需要傳輸的文件尺寸 ? ③加快文件傳輸速度

(2)減少發送的請求數量 ①利用瀏覽器緩存 ? ②使用合并的圖片文件

(3)提高瀏覽器下載的并發度 ①JS文件放在HTML文檔最后 ? ②使用多個域名

(4)讓頁面盡早開始顯示
①將樣式表的引用放在HTML文檔的開頭,將JS的引用放在HTML文檔的最后,這樣JS文件的下載和執行會在所有頁面都下載完成后,不會阻止其他頁面元素的顯示。從用戶感官上說,JS文件的下載和執行時間完全不會被用戶感覺到。

2、瀏覽器緩存

引用地址

3、cookie sessionStorage localStorage 區別

區別:
1、cookie數據始終在同源的http請求中攜帶(即使不需要),即cookie在瀏覽器和服務器間來回傳遞,而sessionStorage和localStorage不會自動把數據發送給服務器,僅在本地保存。cookie數據還有路徑(path)的概念,可以限制cookie只屬于某個路徑下
2、存儲大小限制也不同,cookie數據不能超過4K,同時因為每次http請求都會攜帶cookie、所以cookie只適合保存很小的數據,如會話標識。sessionStorage和localStorage雖然也有存儲大小的限制,但比cookie大得多,可以達到5M或更大
3、數據有效期不同,sessionStorage:僅在當前瀏覽器窗口關閉之前有效;localStorage:始終有效,窗口或瀏覽器關閉也一直保存,因此用作持久數據;cookie:只在設置的cookie過期時間之前有效,即使窗口關閉或瀏覽器關閉
4、作用域不同,sessionStorage不在不同的瀏覽器窗口中共享,即使是同一個頁面;localstorage在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的

4、Canvas和SvG的區別是什么?

兩者的區別如下:
一旦 Canvas繪制完成將不能訪問像素或操作它;任何使用SVG繪制的形狀都能被記憶和操作,可以被瀏覽器 再次顯示。
Canvas對繪制動畫和游戲非常有利;SVG對創建圖形(如CAD)非常有利。
因為不需要記住以后事情,所以 Canvas運行更快;因為為了之后的操作,SVG需要記錄坐標,所以運行比較 緩慢。
在 Canvas中不能為繪制對象綁定相關事件;在SVG中可以為繪制對象綁定相關事件。
Canvas繪制出的是位圖,因此與分辨率有關;SvG繪制出的是矢量圖,因此與分辨率無關

5、清除浮動的方式

第一種 清除浮動方式 clear 在浮動元素的同級末尾加上 一個空div 并添加樣式 clear屬性
第二種 當子元素發生浮動 使用 overflow屬性會強制性包裹起來浮動內容 而達到清除浮動的效果
第三種:用偽類去實現清除浮動 : after偽類 來實現清除浮動 有借助第二種方式的方法

6、談談你對靜態布局、自適應布局、響應式布局、彈性布局的理解?

靜態布局
描述:就是設定好的長和寬,大小不會改變,不管你多大的屏幕它都是那么大,分辨率是不會改變的
自適應布局
描述:不同屏幕分辨率下,保持原有展示方式。元素的尺寸大小可以改變,但展示方式不會改變
響應式布局
描述:不同屏幕分辨率下,展示方式不同
彈性布局(flex布局)
描述:目前比較流行的一種布局,使用傳統布局難以實現一些復雜的布局,使用flex布局實現就變得非常容易

7、async和defer的區別

defer和async是script標簽的兩個屬性,用于在不阻塞頁面文檔解析的前提下,控制腳本的下載和執行。
defer:用于開啟新的線程下載腳本文件,并使腳本在文檔解析完成后執行 - js的執行在所有的元素都解析完成之后執行。
async:新增屬性,用于異步下載腳本文件,下載完畢立即解釋執行代碼 - js加載完成之后立即執行。

8、JS判斷數據類型的方法

1、typeof
2、instanceof
3、constructor
4、toString
5、is Array 判斷是否為數組
6、通過原型 Object.prototype.toString.call(val) === ‘[object Object]’

9、數組去重

利用ES6 Set去重(ES6中最常用)
利用for嵌套for,然后splice去重(ES5中最常用)

10、var let const的區別

①var有變量提升 let、const沒有變量提升
②var除函數內部都為全局變量 let、const都屬于塊級作用域
③var可以重復定義,會覆蓋之前的變量 let、const不能重復定義,報錯
④var沒有暫時性死區 let、const有暫時性死區
⑤var聲明為全局變量的時候會掛載到window let、 const不會掛載到window
⑥var、let為變量 const為常量

11、new操作符具體做了哪些事情

①new會在內存中創建一個新的空對象
②new會讓this指向這個對象
③執行構造函數里的代碼,給這個新對象添加屬性和方法
④new 會返回這個新對象(所以構造函數不需要return)

12、js的繼承

1、原型鏈繼承
優點:父類方法和屬性可以復用
缺點:1、父類中的引用數據類型會被共享(子類修改父類中的引用數據,另一個子類跟著改動)2、不能傳遞參數

function Person() {this.name = "小明"this.eats = ['蘋果']this.getName = function() {console.log(this.name)}
}
Person.prototype.get = () => {console.log("Person.prototype上的方法")
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14471.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14471.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14471.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

音視頻及H264/H256編碼相關原理

一、音視頻封裝格式原理: 我們播放的視頻文件一般都是用一種封裝格式封裝起來的,封裝格式的作用是什么呢?一般視頻文件里不光有視頻,還有音頻,封裝格式的作用就是把視頻和音頻打包起來。 所以我們先要解封裝格式&#…

谷歌上架,個人號比企業號好上?“14+20”封測如何解決,你知道了嗎

在Google Play上架應用,對開發者而言,既是挑戰也是機遇。隨著谷歌政策的不斷更新,特別是要求2023年11月13日后注冊的個人開發者賬號在發布正式版應用前,必須經過20人連續14天的封閉測試。 這一政策的改變使得許多開發者開始考慮使…

什么是物聯網通信網關?-天拓四方

在信息化、智能化的時代,物聯網技術的廣泛應用正在逐漸改變我們的生活方式。物聯網通過各種傳感器和設備,將現實世界與數字世界緊密相連,從而實現智能化、自動化的生活和工作方式。作為物聯網生態系統中的重要組成部分,物聯網通信…

【數據結構】堆(Heep)

???專欄:數據結構 🧑?🎓個人主頁:SWsunlight 目錄 一、堆: 定義: 性質: 大、小根堆: 二、實現堆(完全二叉樹): 前言: …

四、Filter

Filter簡介 Filter 的基本功能是對Servlet容器調用Servlet的過程進行攔截,從而在Servlet進行響應處理的前后實現一些特殊的功能.在Servlet API 中定義了三個接口類來供開發人員編寫Filter 程序:Filter,FilterChain,FilterConfigFilter 程序是一個實現了…

Spring:Spring事務失效的各種場景以及解決方法

一、前言 Spring事務是指Spring框架中提供的事務管理功能,它可以幫助開發者簡化事務管理的復雜性,提高代碼的可維護性和可擴展性。本文將總結并分析Spring事務失效的各種場景,幫助你全面了解事務失效的原因和解決方案。 二、Spring事務失效的…

51匯編--數碼管顯示

;將內部RAM30H~32H單元中存儲的6位十進制數顯示在6個數碼管上。 ;要求編寫將一個內存單元中的壓縮BCD碼轉換為兩個七段顯示碼的子程序和 ;延時子程序。不允許在程序中給30H、31H和32H單元賦值,要通過存 ;儲器窗口賦值。嘗試改變點亮數碼管的時間&#xf…

Linux軟硬鏈接及動靜態庫

軟硬鏈接與動靜態庫 軟連接 創建鏈接的方法: ln -s test1.txt test2.txt 其中ln 是link(鏈接),-s 是soft(軟),后者鏈接前者。 此時打開test2.txt,發現其中內容與test.txt一致。那么軟連接到底建立了什么聯系?…

輕松購物,盡在購物網

在忙碌的生活中,想要找到心儀的商品,卻總是苦于沒有時間和精力去實體店挑選?別擔心,購物網為您提供一站式的購物體驗。無論是時尚服飾、家居用品,還是美食特產,這里都能滿足您的需求。只需輕輕一點&#xf…

監聽element-ui表格滾動事件

當element-ui表格高度寫死之后,表格內容超出高度就會在右側顯示滾動條,監聽滾動事件 首先給表格加ref,ref"refTable" 然后在mounted生命周期里寫監聽事件 mounted() {this.$refs.refTable.$el.onwheel (e) > {console.log(滾…

深入解析線程上下文切換的原理與優化策略

深入解析線程上下文切換的原理與優化策略 定義觸發條件線程上下文切換的過程線程上下文切換的開銷減少上下文切換的方法示例代碼總結 線程上下文切換(Thread Context Switch)是操作系統調度機制的重要組成部分。它涉及保存當前線程的狀態并恢復新線程的狀…

vue中使用ant的rangePicker設置禁選時間和時間格式

<a-range-pickerstyle"width: 100%":disabled-date"disabledDate"v-model:value"time"valueFormat"YYYY-MM-DD" />valueFormat設置時間格式YYYY-MM-DD 通過dayjs獲取時間&#xff0c;return過濾后的時間 const disabledDate (…

安裝apex時遇到的問題

Apex是混合精度庫&#xff0c;安裝過程中常常出現各種問題&#xff0c;在此記錄一下 首先&#xff0c;不能使用pip install apex,這是兩個完全不同的庫&#xff0c;需要去官網下載 其次&#xff0c;參考官網安裝時可能會報錯&#xff1a;could not build wheels for apex, whic…

C/C++運行時庫和UCRT系統通用運行時庫總結及問題實例分享

目錄 1、概述 2、不同版本的Visual Studio對應的運行時庫說明 3、在Windbg10.0安裝目錄中獲取UCRT通用運行時庫 4、微軟官網對UCRT通用運行時庫的相關說明 5、使用Visual Studio 2017開發軟件初期遇到的UCRT通用運行時庫問題 6、如何查看軟件依賴了哪些C/C運行時庫&#…

后端雪花算法主鍵ID傳到前端變了

Mybatis Plus 的主鍵策略&#xff1a; /*** id*/TableId(type IdType.ASSIGN_ID)private Long id; 這個主鍵策略會用雪花算法生成一個 19位的ID&#xff0c;比如 1791006670084734978 現象 后端生成的 id 是正常的&#xff0c;通過 swagger 文檔此時獲取到的 id 也和數據庫中…

leetcode-盛水最多的容器-109

題目要求 思路 1.正常用雙循環外循環i從0開始&#xff0c;內循環從height.size()-1開始去計算每一個值是可以的&#xff0c;但是因為數據量太大&#xff0c;會超時。 2.考慮到超時&#xff0c;需要優化一些&#xff0c;比如第一個選下標1&#xff0c;第二個選下標3和第一個選下…

Java 面試題日常練習

### 基礎知識 1. **什么是 JVM&#xff1f;解釋其架構。** - JVM&#xff08;Java Virtual Machine&#xff09;是 Java 程序的運行時環境。其架構包括類加載器子系統、運行時數據區&#xff08;堆、棧、本地方法棧、PC 寄存器、方法區&#xff09;、執行引擎和本地方法接口…

心識宇宙 x TapData:如何加速落地實時數倉,助力 AI 企業智慧決策

使用 TapData&#xff0c;化繁為簡&#xff0c;擺脫手動搭建、維護數據管道的諸多煩擾&#xff0c;輕量代替 OGG、DSG 等同步工具&#xff0c;「CDC 流處理 數據集成」組合拳&#xff0c;加速倉內數據流轉&#xff0c;幫助企業將真正具有業務價值的數據作用到實處&#xff0c…

基于springboot實現華府便利店信息管理系統項目【項目源碼+論文說明】計算機畢業設計

基于springboot實現華府便利店信息管理系統演示 摘要 現代經濟快節奏發展以及不斷完善升級的信息化技術&#xff0c;讓傳統數據信息的管理升級為軟件存儲&#xff0c;歸納&#xff0c;集中處理數據信息的管理方式。本華府便利店信息管理系統就是在這樣的大環境下誕生&#xff…

電影《朝云暮雨》觀后感

上周看了電影《朝云暮雨》&#xff0c;看完之后&#xff0c;感覺自己整個人都不太好了&#xff0c;也不是說電影太差&#xff0c;只是覺得電影沒有傳達正能量&#xff0c;讓人很不舒服。 &#xff08;1&#xff09;演技在線 對于著名的演員“范偉”&#xff0c;或者說&#x…