Ⅰ Web前端面試的常見面試題匯總
今天小編要跟大家分享的文章是關於參加Web前端面試的常見面試題匯總。准備參加Web前端面試的小夥伴們來和小編一起看一看吧,希望則寬本篇文章能夠對大家有所幫助。1.漸進增強與優雅降級
漸進增強
並不是一種技術,而是一種設計思想。各個瀏覽器的渲染能力各不相同,要做一個每個人都能看到的網頁、感受到的體驗都一致的網站幾乎不可能。但還是得網站的可訪問性,保證用戶在任何環境下都能正常訪問網頁得核心內容或能使用基本功能(避免網頁打不開、排版錯誤等),並為他們提供當前條件下最好的體驗,這就是漸進增強得核心思想。
優雅降級也是一種設計思想,為了保證在高版本瀏覽器中提供最好的體驗,碰到低版本瀏覽器再降級進行兼容處理,使其能正常瀏覽。
這兩種思想的區別在於:
1.漸進增強是向上兼容,優雅降級是向下兼容;
2.漸進增強是從簡單到復雜,優雅降級是從復雜到簡單;
3.漸進增強關注的是內容(保證核心內容),優雅降級關注的是瀏覽體驗(為了兼容低版本瀏覽器)
2.DOCTYPE
作用
DTD(DocumentTypeDefinition,文檔類型定義)是一系列的語法規則,用來定義XML或(X)HTML
的文檔類型。瀏覽器會使用它來判斷文檔類型,決定何種協議來解析,以及切換瀏覽模式。
DOCTYPE是用來聲明文檔類型和DTD
規范的,一個主要的用途便是文件的合法性驗證。如果文檔代碼不合法,那麼瀏覽器解析時便會出現一些差錯。
HTML5的文檔類型聲明:
HTML4.01Strict(HTML4.01嚴格模式)的DTD包含所有HTML
元素和屬性,但不包括展示性的和棄用的元素(如font),它的文檔類型聲明:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
標准模式與怪異模式
怪異模式(Quirks
Mode)用於模擬舊瀏覽器的行為。早期的網站並不會遵循完整的規好卜范,隨著瀏覽器支持越來越多的規范,在那些舊的瀏覽器中開發的頁面在顯示時會友盯穗被破壞。為了向後兼容,瀏覽器發明了怪異模式,一行錯誤或無效的
DOCTYPE都會觸發怪異模式。
瀏覽器使用文件開頭的DOCTYPE來決定用怪異模式處理或標准模式處理。DOCTYPE
可以確保不同瀏覽器以相同的方式解析文檔,以及執行相同的渲染模式。
怪異模式與標准模式的主要區別:
1.怪異模式的寬度和高度會包含padding和border。標准模式不包含,標准模式下可以通過設置box-sizing:
border-box將標准盒模型轉化成怪異模式下的盒模型。
2.怪異模式下,當內容超出容器高度時,會將容器拉伸,而不是溢出。
3.怪異模式下,在表格中的字體樣式(如font-size)不會繼承。
4.怪異模式下顏色值必須使用十六進制標記法。
3.語義化
HTML5
中的語義化就是讓元素、屬性或屬性值有含義,更准確地標記特定類型的內容。對元素語義化的目的是為了讓元素的語義和呈現分離,元素只負責文檔內容的結構與含義,而CSS
樣式控制內容的呈現,像元素,沒有語義但卻能將字體變粗,這類元素違背了語義化的目的,將會被廢棄。
優點
·使得HTML文檔結構清晰、布局合理、主體突出、可讀性更強。
·有利於SEO,搜索引擎根據標簽來確定上下文和各個關鍵字的權重。
·方便其他設備解析,如盲人閱讀器根據語義渲染網頁。
·有利於開發和維護,語義化更具可讀性,代碼更好維護,與CSS3關系更和諧。
語義化標簽
·
·footer內容的頁腳,通常包含該章節作者、版權數據或者與文檔相關的鏈接等信息;
·article
文檔、頁面、應用或網站中的獨立結構,是可獨立分配的、可復用的結構,如在發布中,它可能是論壇帖子、雜志或新聞文章、博客、用戶提交的評論、互動式組件,或者其他獨立的內容項目;
·nav描述一個含有多個超鏈接的區域,該區域包含跳轉到其他頁面或頁面內部其他部分的鏈接列表;
·section表示文檔中的一個區域(或節),比如,內容中的一個專題組;
·main定義文檔的主要內容,該內容在文檔中應當是獨一無二的,不包含任何在文檔中重復的內容,比如側邊欄,導航欄鏈接,版權信息,網站
logo,搜索框(搜索框作為文檔的主要內容);
·aside
表示一個和其餘頁面內容幾乎無關的部分,被認為是獨立於該內容的一部分且可以被單獨的拆分出來而不會影響整體。通常表現為側邊欄或嵌入內容。
4.超鏈接偽類
:link、:visited、:active和:hover的聲明順序是怎樣的?
:link表示未訪問的鏈接狀態;
:visited表示已訪問狀態;:active表示激活狀態(滑鼠按下);:hover表示懸停狀態。
推薦順序是LVHA,即:link:visited:hover:active。理由如下:
·當滑鼠懸停在未訪問的鏈接上時,:link和:hover都會命中,如果:hover在:link
之前聲明,那麼(:hover)就會被覆蓋;
·當滑鼠懸停在已訪問的連接上時,:visited和:hover都會命中,如果:hover在:visited
之前聲明,那麼(:hover)就會被覆蓋;
·當滑鼠單擊鏈接時,:active和:hover都會命中,我們大多是想讓:hover只在懸停時展示樣式,按下滑鼠時使用:active
樣式,因此:active在:hover之後聲明;
·綜上,:hover應在:link和:visited之後,在:active之前,因此active在最後。而:link和
:visited兩者的順序無所謂,互不影響。
5.CSS常見的長度單位
CSS中除了px長度單位之外,還有下面幾個長度單位:
·pc六分之一英寸,1pc=12pt=1/6*1in=16px;
·pt一磅,72分之一英寸。1pt=1/12_1pc=1/72_1in≈1.33px;
·in一英寸,1in=2.54cm=96px;
·ex在含有「X」字母的字體中,它是該字體的小寫字母的高度。對於很多字體來說,1ex≈0.5em;
·em1em等於父級元素的字體大小,2em就是父級元素字體大小的二倍;
·rem當用在根元素()的font-size上面時,它代表了它的初始值;
·ch代表元素所用字體font中「0」這一字形的寬度;
·vh1vh相當於視口高度的1%,100vh就是視口的高度;
·vw1vw相當於視口寬度的1%,100vw就是視口的寬度;
·vmax視口高度vw和寬度vh兩者中的最小值
·vmin視口高度vw和寬度vh兩種中的最大值;
·%相對於父級元素的大小來確定;
參考:CSS
CSSpercentage[2]
6.事件對象
冒泡與捕獲
事件冒泡與捕獲是事件處理的兩種機制,主要描述當在一個元素上有兩個相同類型的事件處理器被激活會發生什麼。
在點擊子元素時,瀏覽器運行了兩種不同的階段:捕獲階段和冒泡階段。捕獲階段的行為:
·瀏覽器檢查元素的最外層祖先,是否在捕獲階段中注冊了一個onclick事件處理程序,如果是,則運行它;
·
然後,它移動到中單擊元素的下一個祖先元素,並執行相同的操作,然後是單擊元素再下一個祖先元素,依此類推,直到到達實際點擊的元素;
而冒泡與捕獲恰恰相反:
·瀏覽器檢查實際點擊的元素是否在冒泡階段中注冊了一個onclick事件處理程序,如果是,則運行它;
·然後它移動到下一個直接的祖先元素,並做同樣的事情,然後是下一個,等等,直到它到達元素;
而現代瀏覽器在默認情況下,所有事件處理程序都在冒泡階段進行注冊。因此上面代碼在點擊子元素時會先執行子元素綁定的事件,然後向上冒泡,觸發父元素綁定的事件。
addEventListener函數的第三個參數是個布爾值。含義:
·當布爾值是false時(這也是默認值),表示向上冒泡觸發事件;
·當布爾值是true時,表示向下捕獲觸發事件;
不能冒泡的事件
有些事件是不會冒泡的。比如:
·blur元素失去焦點時觸發,focusout事件也是失去焦點時觸發,但可以冒泡;
·focus元素獲取焦點時觸發;
·mouseenter滑鼠移動到元素上時會觸發該事件,與之對應的是mouseover事件,但會冒泡;
·mouseleave滑鼠離開元素時觸發,與之對應的是mouseout,但會冒泡;
事件冒泡可以讓我們利用事件委託,尤其是處理大量子元素時,如果給每個子元素都綁定事件,這是不優雅的,可以將事件綁定到父元素上,並讓子節點上發生的事件冒泡到父節點上,利用
e.target屬性可以獲取到當前觸發事件的子元素。
事件對象中的方法
·stopPropagation()阻止事件冒泡,當設置後,點擊該元素時父元素綁定的事件就不會再觸發;
·preventDefault()阻止默認事件的發生;
·stopImmediatePropagation()它用來阻止監聽同一事件的其他事件監聽器被調用以及阻止事件冒泡,比如給同一個div
元素綁定多個click事件(使用addEventListener方法可以注冊多個),當在第二個事件函數中調用
stopImmediatePropagation方法時,點擊div元素時,後面注冊的click將不會被觸發,而且還會阻止事件冒泡;
比如下面的例子,給p綁定多個click事件,在第二個事件函數中調用stopImmediatePropagation,第三個click
事件就不會觸發,因為也阻止了冒泡,因此父元素的click事件也不會觸發。
paragraph
Ⅱ 47道基礎的VueJS面試題(附答案)
1、什麼是MVVM框架?它適用於哪些場景?
MVVM框架是一個 Model-View-View Model框架,其中 ViewModel連接模型Model)和視圖(View)。
在數據操作比較多的場景中,MVVM框架更合適,有助於通過操作數據渲染頁面。
2、active- class是哪個組件的屬性?
它是 vue-router模塊的 router-link組件的屬性。
3、如何定義Vue- router的動態路由?
在靜態路由名稱前面添加冒號,例如,設置id動態路由參數,為路由對象的path屬性設置/:id。
4、如何獲取傳過來的動態參數?
在組件中,使用$router對象的 params.id,即 $route.params.id 。
5、vue- router有哪幾種導航鉤子?
有3種。
第一種是全局導航鉤子:router.beforeEach(to,from,next)。作用是跳轉前進行判斷攔截。
第二種是組件內的鉤子。
第三種是單獨路由獨享組件。
6、mint-ui是什麼?如何使用?
它是基於 Vue.js的前端組件庫。用npm安裝,然後通過 import導入樣式和JavaScript代碼。vue.use(mintUi)用於實現全局引入, import {Toast} from ' mint-ui'用於在單個組件局部引入。
7、V-model是什麼?有什麼作用?
v- model是 Vue. js中的一條指令,可以實現數據的雙向綁定。
8、Vue.js中標簽如何綁定事件?
綁定事件有兩種方式。
第一種,通過v-on指令, 。
第二種,通過@語法糖, input@ click= doLog()/>。
9、vuex是什麼?如何使用?在哪種功能場景中使用它?
vuex是針對 Vue. js框架實現的狀態管理系統。
為了使用vuex,要引入 store,並注入Vue.js組件中,在組件內部即可通過$ ostore訪問 store對象。
使用場景包括:在單頁應用中,用於組件之間的通信,例如音樂播放、登錄狀態管理、加入購物車等。
10、如何實現自定義指令?它有哪些鉤子函數?還有哪些鉤子函數參數?
自定義指令包括以下兩種。
它有如下鉤子函數。
鉤子函數的參數如下。
11、至少說出vue.js中的4種指令和它們的用法。
相關指令及其用法如下。
12、Vue-router是什麼?它有哪些組件?
它是 Vue. js的路由插件。組件包括 router-link和 router-vIew。
13、導航鉤子有哪些?它們有哪些參數?
導航鉤子又稱導航守衛,又分為全局鉤子、單個路由獨享鈞子和組件級鈞子。
全局鉤子有 beforeEach、beforeResolve(Vue2.5.0新增的)、 afterEach。
單個路由獨享鉤子有 beforeEnter。
組件級鉤子有 beforeRouteEnter、 beforeRouteUpdate(Vue2.2新增的) beforeRouteLeave。
它們有以下參數。
14、Vue.js的雙向數據綁定原理是什麼?
具體步驟如下。
(1)對需要觀察的數據對象進行遞歸遍歷,包括子屬性對象的屬性,設置set和get特性方法。當給這個對象的某個值賦值時,會觸發綁定的set特性方法,於是就能監聽到數據變化。
(4)MVVM是數據綁定的入口,整合了 Observer、 Compile和 Watcher三者,通過Observer來監聽自己的 model數據變化,通過 Compile來解析編譯模板指令,最終利用Watcher搭起 Observer和 Compile之間的通信橋梁,達到數據變化通知視圖更新的效果。利用視圖交互,變化更新數據 model變更的雙向綁定效果。
15、請詳細說明你對Vue.js生命周期的理解。
總共分為8個階段,分別為 beforeCreate、created、beforeMount、 mounted、beforeUpdate、 updated、 beforeDestroyed、 destroyed。
當使用組件的kep- alive功能時,增加以下兩個周期。
Vue2.5.0版本新增了一個周期鉤子:ErrorCaptured,當捕獲一個來自子孫組件的錯誤時調用。
16、請描述封裝Vue組件的作用過程。
組件可以提升整個項目的開發效率,能夠把頁面抽象成多個相對獨立的模塊,解決了傳統項目開發中效率低、難維護、復用性等問題。
使用Vue.extend方法創建一個組件,使用Vue.component方法注冊組件。子組件需要數據,可以在 props中接收數據。而子組件修改妤數據後,若想把數據傳遞給父組件,可以採用emit方法。
17、你是怎樣認識vuex的?
vuex可以理解為一種開發模式或框架。它是對 Vue. js框架數據層面的擴展。通過狀態(數據源)集中管理驅動組件的變化。應用的狀態集中放在 store中。改變狀態的方式是提交 mutations,這是個同步的事務。非同步邏輯應該封裝在 action中。
18、Vue- loader是什麼?它的用途有哪些?
它是解析.vue文件的一個載入器,可以將 template/js/style轉換成 JavaScript模塊。
用途是通過 vue-loader, JavaScript可以寫 EMAScript 6語法, style樣式可以應用scss或less, template可以添加jade語法等。
19、請說出vue.cli項目的src目錄中每個文件夾和文件的用法。
assets文件夾存放靜態資源;components存放組件;router定義路由相關的配置;view是視圖;app. vue是一個應用主組件;main.js是入口文件。
20、在Vue.cli中怎樣使用自定義組件?在使用過程中你遇到過哪些問題?
具體步驟如下。
(1)在 components目錄中新建組件文件,腳本一定要導出暴露的介面。
(2)導入需要用到的頁面(組件)。
(3)將導入的組件注入uejs的子組件的 components屬性中。
(4)在 template的視圖中使用自定義組件。
21、談談你對vue.js的 template編譯的理解。
簡而言之,就是首先轉化成AST( Abstract Syntax Tree,抽象語法樹),即將源代碼語法結構抽象成樹狀表現形式,然後通過 render函數進行渲染,並返回VNode( Vue. js的虛擬DOM節點)。
詳細步驟如下。
(1)通過 compile編譯器把 template編譯成AST, compile是 create Compiler的返回值, createCompiler用來創建編譯器。另外, compile還負責合並 option。
(2)AST會經過 generate(將AST轉化成 render funtion字元串的過程)得到 render函數, render的返回值是 VNode, VNode是 Vue.Js的虛擬DOM節點,裡面有標簽名子節點、文本等。
22、說一下Vue.js中的MVVM模式。
MVVM模式即 Model- View- ViewModel模式。
Vue.js是通過數據驅動的, Vue. js實例化對象將DOM和數據進行綁定,一旦綁定,和數據將保持同步,每當數據發生變化,DOM也會隨著變化。
ViewModel是Vue.js的核心,它是 Vue.js的一個實例。Vue.js會針對某個HTML元素進行實例化,這個HTML元素可以是body,也可以是某個CSS選擇器所指代的元素。
DOM Listeners和 Data Bindings是實現雙向綁定的關鍵。DOM Listeners監聽頁面所有View層中的DOM元素,當發生變化時,Model層的數據隨之變化。Data Bindings會監聽 Model層的數據,當數據發生變化時,View層的DOM元素也隨之變化。
23、v-show指令和v-if指令的區別是什麼?
v-show與v-if都是條件渲染指令。不同的是,無論v-show的值為true或 false,元素都會存在於HTML頁面中;而只有當v-if的值為true時,元素才會存在於HTML頁面中。v-show指令是通過修改元素的 style屬性值實現的。
24、如何讓CSS只在當前組件中起作用?
在每一個Vue.js組件中都可以定義各自的CSS、 JavaScript代碼。如果希望組件內寫的CSS只對當前組件起作用,只需要在Style標簽添加Scoped屬性,即 。
25、如何創建vue.js組件?
在vue.js中,組件要先注冊,然後才能使用。具體代碼如下
26、如何實現路由嵌套?如何進行頁面跳轉?
路由嵌套會將其他組件渲染到該組件內,而不是使整個頁面跳轉到 router-view定義組件渲染的位置。要進行頁面跳轉,就要將頁面渲染到根組件內,可做如下配置。
首先,實例化根組件,在根組件中定義組件渲染容器。然後,掛載路由,當切換路由時,將會切換整個頁面。
27、ref屬性有什麼作用?
有時候,為了在組件內部可以直接訪問組件內部的一些元素,可以定義該屬性此時可以在組件內部通過this. $refs屬性,更快捷地訪問設置ref屬性的元素。這是一個原生的DOM元素,要使用原生 DOM API操作它們,例如以下代碼。
注意:在Ve2.0中,ref屬性替代了1.0版本中v-el指令的功能。
28、Vue. js是什麼?
Vue. js的目標是通過盡可能簡單的API實現響應式的數據綁定的組件開發。
29、描述vue.js的一些特性。
Vue.js有以下持性。
(1)MVVM模式。
數據模型( Model)發生改變,視圖(View)監聽到變化,也同步改變;視圖(View)發生改變,數據模型( Model)監聽到改變,也同步改變。
使用MVVM模式有幾大好處。
(2)組件化開發
(3)指令系統
(4)Vue2.0開始支持虛擬DOM。
但在Vue1.0中,操作的是真實DOM元素而不是虛擬DOM,虛擬DOM可以提升頁面的渲染性能。
30、描述vue.js的特點。
Vue. js有以下特點。
31、在vue.js中如何綁定事件?
通過在v-on後跟事件名稱=「事件回調函數( )」的語法綁定事件。事件回調函數的參數集合( )可有可無。如果存在參數集合( ),事件回調函數的參數需要主動傳遞,使用事件對象要傳遞 $event。當然,此時也可以傳遞一些其他自定義數據。如果沒有參數集合,此時事件回調函數有一個默認參數,就是事件對象。事件回調函數要定義在組件的 methods屬性中,作用域是 Vue. js實例化對象,因此在方法中,可以通過this使用 Vue. js中的數據以及方法,也可以通過@語法糖快速綁定事件,如@事件名稱=「事件回調函數( )」。
32、請說明 組件的作用。
當 包裹動態組件時,會緩存不活動的組件實例,而不是銷毀它們。
keep-alive>是一個抽象組件,它自身不會渲染一個DOM元素,也不會出現在父組件鏈中。
當在 內切換組件時,它的 activated和 deactivated這兩個生命周期鈞子函數將會執行。
33、axios是什麼?如何使用它?
axios是在vue2.0中用來替換 vue-resource.js插件的一個模塊,是一個請求後台的模。
用 npm install axios安裝 axios。基於 EMAScript 6 的 EMAScript Mole規范,通過 import關鍵字將 axios導入,並添加到 Vue. js類的原型中。這樣每個組件(包括vue.js實例化對象)都將繼承該方法對象。它定義了get、post等方法,可以發送get或者post請求。在then方法中注冊成功後的回調函數,通過箭頭函數的作用域特徵,可以直接訪問組件實例化對象,存儲返回的數據。
34、在 axios中,當調用 axios.post('api/user')時進行的是什麼操作?
當調用post方法表示在發送post非同步請求。
35、sass是什麼?如何在ue中安裝和使用?
sass是一種CSS預編譯語言安裝和使用步驟如下。
(1)用npm安裝載入程序( sass-loader、 css-loader等載入程序)。
(2)在 webpack. config. js中配置sass載入程序。
(3)在組件的 style標簽中加上lang屬性,例如lang="scss"。
36、如何在 Vue. js中循環插入圖片?
對「src」屬性插值將導致404請求錯誤。應使用 v-bind:src格式代替。
代碼如下:
Ⅲ 騰訊WEB前端筆試題和面試題答案
騰訊WEB前端筆試題和面試題答案
能進入騰訊工作是多少人的夢想,下面我為大家搜集的一篇“騰訊WEB前端筆試題和面試題答案”,供大家參考借鑒,希望可以幫助到有需要的朋友!
一、 耐心填一填!(每空4分,共24分)
1. 為span設置類a與b,應編寫HTML代碼_________。
2. 設置CSS屬性clear的值為_both___________時可清除左右兩邊浮動。
3. ____li________標簽必須直接嵌套於ul、ol中。
4. CSS屬性_____margin_______可為元素設置外補丁。
5. 設置CSS屬性float的值為___none_________時可取消元素的浮動。
6. 文字居中的CSS代碼是____text-align:center________。
二、 精心選一選!(每題4分,共16分)
1. 下列哪個樣式定義後,內聯(非塊狀)元素可以定義寬度和高度( C )
A. display:inline B. display:none C. display:block D. display:inheric
2. 選出你認為最合理的定義標題的方法( C )
A. 文章標題
B.
文章標題
C.
文章標題
D. 文章標題
3. br標簽在XHTML中語義為( A )
A.換行 B.強調 C.段落 D.標題
4. 不換行必須設置( AC )
A.word-break B.letter-spacing C.white-space D.word-spacing
5. 在使用table表現數據時,有時候表現出來的'會比自己實際設置的寬度要寬,為此需要設置下面哪些屬性值( AD )
A. cellpadding=”0″ B. padding:0 C. margin:0 D. cellspacing=”0″
三、判斷對或錯!(每題4分,共24分)
1. CSS屬性font-style 用於設置字體的粗細。 ( × )
2. CSS屬性overflow用於設置元素超過寬度時是否隱藏或顯示滾動條。 ( √ )
3. 在不涉及樣式情況下,頁面元素的優先顯示與結構擺放順序無關。 ( × )
4. 在不涉及樣式情況下,頁面元素的優先顯示與標簽選用無關。 ( √ )
5. display:inline兼容所有的瀏覽器。 ( √ )
6. input屬於窗體元素,層級顯示比flash、其它元素都高。 ( × )
;Ⅳ WEB前端面試題
第二章 面試題基礎篇
2.1 HTML面試題
面試題:行內元素有哪些?塊級元素有哪些? 空(void)元素有那些?
面試題:頁面導入樣式時,使用link和@import有什麼區別?
面試題:title與h1的區別、b與strong的區別、i與em的區別?
面試題:img標簽的title和alt有什麼區別?
面試題:png、jpg、gif 這些圖片格式解釋一下,分別什麼時候用?
2.2 CSS面試題
面試題:css背景紋路
面試題:介紹一下CSS的盒子模型
面試題:CSS選擇符有哪些?哪些屬性可以繼承?
面試題:CSS優先順序演算法如何計算?
面試題:用CSS畫一個三角形
面試題:一個盒子不給寬度和高度如何水平垂直居中?
面試題:display有哪些值?說明他們的作用。
面試題:對BFC規范(塊級格式化上下文:block formatting context)的理解?
面試題:清除浮動有哪些方式?
面試題:在網頁中的應該使用奇數還是偶數的字體?為什麼呢?
面試題:寫一個左中右布局占滿屏幕,其中左、右倆塊固定寬200,中間自適應寬,要求先載入中間塊,請寫出結構及樣式。
面試題:什麼是CSS reset?
面試題:css sprite是什麼,有什麼優缺點
面試題:display: none;與visibility: hidden;的區別
面試題:position有哪些值?有什麼作用? 【特別多公司問】
面試題:line-height和height有什麼區別?
面試題:opacity 和 rgba區別
2.3 JavaScript基礎面試題
面試題:延遲載入JS有哪些方式?
面試題:JS數據類型有哪些?
面試題:null和undefined的區別
面試題:JS數據類型考題
面試題:==和===有什麼不同
面試題:JS微任務和宏任務
面試題:JS作用域考題
面試題:JS對象考題
面試題:JS作用域+this指向+原型 考題
面試題:JS判斷變數是不是數組,你能寫出哪些方法?
面試題:slice是幹嘛的、splice是否會改變原數組
面試題:JS數組去重
面試題:找出多維數組最大值
面試題:給字元串新增方法實現功能
面試題:找出字元串出現最多次數的字元以及次數
2.4 真正移動端 —— H5/C3面試題
面試題:什麼是語義化標簽
面試題:::before 和 :after中雙冒號和單冒號 有什麼區別?解釋一下這2個偽元素的作用。
面試題:如何關閉iOS鍵盤首字母自動大寫
面試題:怎麼讓Chrome支持小於12px 的文字?
面試題:rem和em有什麼樣區別
面試題:ios系統中元素被觸摸時產生的半透明灰色遮罩怎麼去掉
面試題:webkit表單輸入框placeholder的顏色值能改變嗎?
面試題:禁止ios 長按時不觸發系統的菜單,禁止ios&android長按時下載圖片
面試題:禁止ios和android用戶選中文字
面試題:自適應 [淘寶無線適配]
面試題:響應式
第三章 面試題進階篇
3.1 JavaScript進階面試題
面試題:new操作符具體做了什麼
面試題:閉包 【必須會】
面試題:原型鏈 【必須會】
面試題: JS繼承有哪些方式
面試題:說一下call、apply、bind區別
面試題:sort背後原理是什麼?
面試題:深拷貝和淺拷貝
面試題:localstorage、sessionstorage、cookie的區別
3.2 ES6面試題
面試題:var、let、const區別
面試題:作用域考題
面試題:將下列對象進行合並
面試題:箭頭函數和普通函數有什麼區別?
面試題:Promise有幾種狀態
面試題:find和filter的區別 【大廠】
面試題:some和every的區別 【大廠】
3.3 webpack面試題
面試題:webpack插件
3.4 Git面試題
面試題:git常用命令
面試題:解決沖突
面試題:GitFlow
第四章 面試題框架篇
4.1 區分初中高級的 —— Vue面試題
面試題:Vue2.x 生命周期有哪些?
1.系統自帶八個
2.當一旦進入到某個組件會執行哪些生命周期
3.$el和$data在哪個階段有
4.如果使用keep-alive會多倆個生命周期
5.如果加入keep-alive第一次進入組件會執行哪些生命周期
6.如果加入keep-alive第二次或者第N進入該組件會執行哪些生命周期
面試題:談談你對keep-alive的了解
面試題:v-if和v-show區別
面試題:v-if和v-for優先順序 2.x
面試題:ref是什麼?
面試題:nextTick是什麼?
面試題:Vue中如何做樣式穿透
面試題:scoped原理
面試題:Vuex是單向數據流還是雙向數據流?
面試題:講一下MVVM
面試題:雙向綁定原理
面試題:什麼是虛擬DOM
面試題:key是干什麼?
面試題:diff演算法
面試題:Vue組件傳值
面試題:props和data優先順序誰高?
面試題:computed、methods、watch有什麼區別?
面試題:Vuex
面試題:Vue路由
面試題:Vue項目打包後出現空白頁
4.2 微信小程序面試題
面試題:如何自定義頭部?
面試題:如何自定義底部?
4.3 uni-app面試題
面試題:生命周期
面試題:條件編譯
第五章 面試題性能優化篇
Ⅳ Web前端5道面試題
1.請說明ECMAScript,JavaScript,Jscript之間的關系?
ECMAScript提供腳本語言必須遵守的規則、
細節和准則,是腳本語言的規范。
比如:ES5,ES6就是具體的一js版本。
JavaScript是ECMAScript的一個分支版本,
JavaScript實現了多數ECMA-262中
描述的ECMAScript規范,但存在少數差異。
JScript是微軟公司對ECMA-262語言規范的
一種實現,除了少數例外(這是為了保持向後兼容),
微軟公司宣稱JScript完全實現了ECMA標准.
關系:
JavaScript和JScript都是ECMAScript的版本分支,
二者在語法上沒有多大的區別;
只不過一個是NetScape公司的,一個是微軟的;
IE系列默認是JScript,其它的則反之用JavaScript。
2.頁面載入過程中可能觸發哪些事件?它們的順序是?
頁面載入時,大致可以分為以下幾個步驟:1)開始解析HTML文檔結構2)載入外部樣式表及JavaScript腳本3)解析執行JavaScript腳本4)DOM樹渲染完成5)載入未完成的外部資源6)頁面載入成功
執行順序:1)documentreadystatechange事件2)documentDOMContentLoaded事件3)windowload事件
3.函數中在聲明變數a前使用a會產生錯誤嗎?為什麼?
不會,JS中能夠進行變數作用域提升,
把所有變數、函數的聲明提升到當前
作用域的最前面,但不進行賦值操作;
所以可能造成獲取的值是undefined。
4.什麼是hash,以及hashchange事件?
先了解下什麼是hash:hash即URL中"#"字元後面的部分。
a)使用瀏覽器訪問網頁時,
如果網頁URL中帶有hash,
頁面就會定位到id(或name)
與hash值一樣的元素的位置;
b)hash還有另一個特點,
它的改變不會導致頁面重新載入如橡尺;
c)hash值瀏如清覽器是不會隨請求發送到伺服器端的;
d)通過window.location.hash屬性獲取和設置hash值。
window.location.hash值的變化會直渣高接
反應到瀏覽器地址欄(#後面的部分會發生變化),同時,瀏覽器地址欄hash值的變化也會觸發
window.location.hash值的變化,
從而觸發onhashchange事件。
再來了解下什麼是hashchange事件:
a)當URL的片段標識符更改時,
將觸發hashchange事件(跟在#符號後面的URL部分,包括#符號)b)
hashchange事件觸發時,
事件對象會有hash改變前的URL(oldURL)和hash改變後的URL(newURL)兩個屬性。
5.什麼是CDN,CDN對於網站有什麼意義,它有什麼樣的缺點?
CDN又稱為內容分發網路;本意在於
盡可能避開互聯網上有可能影響數據
傳輸速度和穩定性的瓶頸和環節,
使內容傳輸的更快、更穩定。
主要目的:
解決因分布、帶寬、伺服器性能帶來的訪問延遲問題,
適用於站點加速、點播、直播等場景。
使用戶可就近取得所需內容,解決Internet網路擁擠的狀況,
提高用戶訪問網站的響應速度和成功率。
缺點:
a)實施復雜,投資大;
b)目前大部分的CDN還只是對靜態內容加速,
對動態加速效果不好;
而雙線對動態加速的效果跟靜態是一樣的。
Ⅵ 經典的 Web 前端或者 JavaScript 面試筆試題有哪些
一、不定項選擇題(每題3分,共30分)x0dx0a1.聲明一個對象,給它加上name屬性和show方法顯示其name值,以下代碼中正確的是(D)x0dx0aA.varobj=[name:"zhangsan",show:function(){alert(name);}];x0dx0aB.varobj={name:」zhangsan」,show:」alert(this.name)」};x0dx0aC.varobj={name:」zhangsan」,show:function(){alert(name);}};x0dx0aD.varobj={name:」zhangsan」,show:function(){alert(this.name);}};x0dx0a2.以下關於Array數組對象的說法不正確的是(CD)x0dx0aA.對數組里數據的排序可以用sort函數,如果排序效果非預期,可以給sort函數加一個排序函數的參數x0dx0aB.reverse用於對數組數據的倒序排列x0dx0aC.向數組的最後位置加一個新元素,可以用pop方法x0dx0aD.unshift方法用於向數組刪除第一個元素x0dx0a3.要將頁面的狀態欄中顯示「已經選中該文本框」,下列JavaScript語句正確的是(A)x0dx0aA.window.status=」已經選中該文本框」x0dx0aB.document.status=」已經選中該文本框」x0dx0aC.window.screen=」已經選中該文本框」x0dx0aD.document.screen=」已經選中該文本框」x0dx0a4.點擊頁面的按鈕,使之打開一個新窗口,載入一個網頁,以下JavaScript代碼中可行的是(AD)x0dx0aA.hello
,以下代碼中可行的是(BD)x0dx0aA.hello
);x0dx0ax0dx0aB.hello
」);x0dx0ax0dx0aC.hello
x0dx0ax0dx0aD.x0dx0ax0dx0adocument.write(「hello」);x0dx0ax0dx0a
x0dx0a6.分析下面的代碼:x0dx0ax0dx0ax0dx0a裡面的段落
Ⅶ 你遇到的前端面試題都有什麼
大家好,我是王我。
隨著春節的結束,各個行業也普遍開始了上班的節奏, 不過本人17號才上班。為什麼?因為長得帥的都上班比較晚。 當然,每到新年結束,又迎來了一批招聘者與面試者,我來說說作為一年工作經驗應該知道的面試題。
HTML篇
1.doctype是什麼?有哪些類型?
2.input有哪些新類型?簡要說明其8用法。
3.HTML5有哪些新特性,移除了哪些元素?如何處理HTML5新標簽的瀏覽器兼容問題?如何區分HTML和HTML5?
4.bootstrap響應式的原理是什麼?
5.多移動終端頁面適配是如何實現的?
CSS篇
1.如何實現兩列布局,左邊自適應,右邊固定寬度?
2.用CSS畫一個三角形
3.CSS實現字體大寫
4.display有哪些常用的屬性值?分別是什麼意思?
5.position為absolute,relative,fixed的定點位置
6.用三種方法清除浮動
7.請介紹一下margin塌陷問題
js篇
1.什麼是事件冒泡和捕獲?如何阻止事件冒泡?(分別用原生和jquery實現)
2.js創建對象,至少使用三種方法
3.簡述一下事件穿透以及解決辦法
4.用三種方式判斷變數類型是否是數組
5.如何實現對象的拷貝?
6.什麼是閉包?閉包的優缺點。
7.簡述一下ajax請求的過程。
8.簡述一下new一個人構造函數的人過程。
9.為什麼會有跨域?是怎麼解決跨域問題的?簡述一下原理。
10.js原始數據類型有哪些?
11.學一個函數,判斷一個變數是否是字元串
12.typeof有哪些結果?
13.剪頭函數和普通函數有什麼區別?
14.請用三種方法實現數組去重
15.href和src有什麼區別?
jquery篇
1.attr()和prop()有什麼區別?
2.on和bind有什麼區別?js動態添加的dom元素是通過on還是bind?
3.touch和click有什麼區別?
4.window.onload和jquery的ready有什麼區別?
vue篇
1.簡述一下vue的生命周期及其特點
2.vue雙向綁定的原理是什麼?
3.vue的特點有哪些?和jquery有什麼區別?
4.父子組件之間傳遞數據的方法
5.子組件如何共享數據?
6.一般有什麼工具進行數據交互?
7.webpack的原理是什麼?
8.簡述一下$nextTick的用法
瀏覽器篇
1.cookie、sessionStorage、localStorage的區別是什麼?
2.有用過瀏覽器緩存嗎?簡述一下基本的緩存機制
網路篇
1.http和https之間的區別
2.從伺服器的安全考慮,是使用get請求還是post請求?
3.URL請求的過程有哪些?
項目經驗篇
1.項目中遇到的最大挑戰以及解決辦法
2.常見的網頁優化有哪些?
作為一個面試一年以內工作經驗的前端程序員來說,以上的問題能夠倒答如流月薪6k應該不成問題啦。這些面試題也是我在很多面試中感覺經常被問到的題目。
希望大家年後找工作能夠順順利利, 千萬不要跟我一樣哦,只有帥氣就一無所有了。
大家好,我是王我,中國最帥的前端程序員。
前幾次都是各種培訓公司,各種忽悠就不提了,說說後面4次面試的經歷。
第一次是面一個小公司,不過他們好像沒有厲害的前端,來面我的是個後端,一來沒有問我關於js的知識,直接問我以前做過什麼,有沒有經驗,我本人不會吹牛,簡歷也沒怎麼包裝,就是自己把自學的知識和做的幾個小demo弄在上面,也用github掛在頁面上了,不過他根本不點開看,也不問,問我會不會vue,我當時對框架還不了解,他就說他們需要能直接上手開始寫的,所以我第一個就直接掛了。
第二次面試是一個國企,這個問了很多問題,都很基礎,js數據類型,數組操作,事件,大概就是高程的前面幾章看看就差不多都能答到,然後因為他們主要用jq,所以問了很多jq的操作,關於節點的,動畫的,我看鋒利的jq大概看了3遍,也練過多次,所以我答的很熟。然後問了些布局方面的,bootstrap我了解過,又看過css3,所以這方面也沒啥問題,最後在現場做了個題目,主要就是布局然後通過ajax呈現數據。後面聽介紹我面試的說面試官比較滿意,說我jq很熟,一面就過了。可惜後面電話面試不知怎麼回事可能表現的不夠自信,雖然沒問技術,但是我沒啥自信,把沒項目經驗什麼的也不知怎麼就一五一十交代了,估計因為這個掛掉了。
第三次沒問問題,直接就是一套題開做,我在那做了一個多小時。題目就是按照要求一步一步做一個頁面出來,我也搞忘了我當時卡在哪個地方了,坐在那得時候就是做不出來,沒有設計圖,要根據他的描述自己找個設計圖然後做,我第一次遇到這個有點懵,雖然當時沒做出來,不過回來我自己花了幾個小時把它做了。所以這個也是涼了。
第四個問的比較多,數據類型,數組操作,跨域,ajax,閉包,原型鏈,繼承,深拷貝,淺拷貝,模塊amd cmd,基本都是問的js。然後問了html5的新特性 css3 的新特性,遇到過什麼瀏覽器的兼容性問題,怎麼解決的,以後想往什麼方面發展。這個時候我已經會點vue了,照著做了個小demo,不過後來知道公司用的angularjs,面試官也沒看我做的,問也沒問。。以前聽網上說要帶上自己的項目去面試感覺沒起多大效果。
最後總結下如果面的比較初級的崗位,應該主要問js,原型鏈,繼承,閉包,深淺拷貝,ajax,跨域,然後js的基礎知識,對了還有apply和call也問了,html5的新特性了解下就行。主要就是看你js掌握的程度,如果稍微要求高一點的,暫時還沒面過,等以後面過在來回答
1. cookie session 的用途和區別,以及有效期
1、cookie數據存放在客戶的瀏覽器上,session數據放在伺服器上。
2、cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙
考慮到安全應當使用session。
3、session會在一定時間內保存在伺服器上。當訪問增多,會比較佔用你伺服器的性能
考慮到減輕伺服器性能方面,應當使用COOKIE。
4、單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。
2. vue的數據綁定原理,mvvm與mvc的區別
MVVM:
m:model數據模型層 v:view視圖層 vm:ViewModel
vue中採用的是mvvm模式,這是從mvc衍生過來的
MVVM讓視圖與viewmodel直接的關系特別的緊密,就是為了解決mvc反饋不及時的問題
圖片說明一下:
說到MVVM就要說一下雙向綁定和數據劫持的原理,
MVC:
m:model數據模型層 v:view視圖層 c:controller控制器
原理: c層需要控制model層的數據在view層進行顯示
MVC兩種方式,圖片說明:
總結:
mvvm與mvc最大的區別:
MVVM實現了view與model的自動同步,也就是model屬性改變的時候, 我們不需要再自己手動操作dom元素去改變view的顯示,而是改變屬性後該屬性對應的view層會自動改變。
不懂得可以復制鏈接查看:
https://www.pianshen.com/article/3716256399/
3. storage 的區別 sessionStorage localStorage
localStorage 的生命周期是永久性的。假若使用localStorage存儲數據,即使關閉瀏覽器,也不會讓數據消失,除非主動的去刪除數據,使用的方法如上所示。localStorage有length屬性
sessionStorage 的生命周期是在瀏覽器關閉前。也就是說,在整個瀏覽器未關閉前,其數據一直都是存在的。sessionStorage也有length屬性,其基本的判斷和使用方法和localStorage的使用是一致的
有一個文本框 通過v-bind綁定了value屬性 值為myname 是我們在vue實例中定義的屬性
傳統我們獲取文本框值方法 可能通過getElementById找到文本框 然後獲取其value屬性
但是vue中直接通過v-bind綁定了value屬性 所以不需要像之前那樣獲取值
所以在後面的按鈕中獲取name值 直接獲取vue實例對象data裡面的myname屬性即可
【數據為尊 ----數據映射到瀏覽器 如果數據v-model後修改(肯定input)然後到數據在有數據映射到瀏覽器頁面 ----映射關系統稱】
緩存路由組件
使用的是vue的一個組件,參考vue的官方文檔
使用這個東西可以保證我們在切換組件的時候,原來顯示的組件不被銷毀
-----【保障組件的數據不會被切換路由而銷毀數據】
Home是對應的組件對象的名字,不是路由的名字
6.多維數組拍平
數組拍平也稱數組扁平化,就是將數組裡面的數組打開,最後合並為一個數組
一紅六種方法吧……
了解的請看: https://www.cnblogs.com/guan-shan/p/10165737.html
7.跨域的原因 解決方案
跨域是指一個域下的文檔或腳本試圖去請求另一個域下的資源,這里跨域是廣義的。
這樣就可以說同源策略----協議---埠---域名
原生的src和href可以解決跨域
代理可以解決
請求頭也可以攜帶瀏覽器提示的也可以解決
一般都是後端解決跨域問題
【別的需要了解看下方鏈接】
https://blog.csdn.net/qq_41604383/article/details/100770100
8.uniApp兼容問題§ 如果你使用cli創建項目(即項目根目錄是package.json),不管用什麼ide,即便是用HBuilderX,切記cli項目的編譯器是在項目下的,HBuilderX不管怎麼升級都不會影響編譯器版本。你需要手動npm update來升級編譯器。以及如果你想要安裝less、scss等預編譯器,也需要自己npm安裝在項目下,而不是在HBuilderX的插件管理里安裝。
§ 如果你使用離線打包,請注意HBuilderX升級後,真機運行基座和雲打包對應引擎跟隨HBuilderX升級,而你的sdk需要手動升級。sdk的版本升級一般滯後HBuilderX正式版升級一兩天。
§ 如果你使用自定義基座,之前製作的自定義基座是不會跟隨HBuilderX升級的,升級HBuilderX後你應該重新製作新版自定義基座。
§ 如果你使用wgt升級,新版HBuilderX編譯的wgt,運行到之前的runtime上,一定要先測試好,看有沒有兼容性問題。如果有問題,就不要wgt升級,整包升級。
§ 考慮到向下兼容,uni-app編譯器在升級為新的自定義組件模式後,同時保留了對老編譯模式的向下兼容。
在HBuilderX alpha版中,App端一定會使用新編譯器,不理會manifest配置。
在HBuilderX 正式版中,新創建的項目會使用新編譯器,老項目不會強制使用,而是開發者自己在manifest里配置開啟。
§ 如果你使用其他ide開發uni-app,會經常因為拼錯單詞而運行失敗,因為經過webpack編譯一道,很多錯誤反應的不夠直觀,排錯時間很長,不如從開始就依賴有良好提示的HBuilderX,避免敲錯單詞。
§ 雲打包的引擎版本說明
HBuilderX Alpha,只有1套雲打包機,不管你的HBuilderX alpha版本多少,對應的打包機一定是最新的alpha版的客戶端引擎。
HBuilderX正式版,有2套打包機,一個是最新正式版,一個是次新正式版。
中間的緊急更新版本沒有獨立打包機。
舉個例子:
HBuilderX 有1.8.0、1.8.1、1.8.2、1.9.0、1.9.1這幾個正式版。
那麼當前可用的打包機有1.9.1和1.8.2這2台。(即每個大版本的最後一個版本)
除了這2個HBuilderX版本外,其他版本的雲打包都指向最新的1.9.1版對應的打包機。(即只保留2個大版本的雲打包機)
【詳情請看】
https://ask.dcloud.net.cn/article/35845
一、HTML
HTML書寫規范
H5新增標簽
HTML渲染過程
二、CSS
css盒子模型概念
css彈性布局概念
三、JavaScript
事件模型
DOM2級事件模型
閉包
原型鏈
四、移動Web開發
常見的布局方案
移動端前端常見的觸摸相關事件touch、tap、swipe等整理
移動端前端手勢事件
移動端頁面渲染優化
GPU渲染
GPU核心渲染過程
五、調試
常用的調試工具
Chrome控制台調試js使用
移動端測試
六、HTTP網路知識
常見的HTTP狀態碼
不同請求類型的區別
WEB緩存方案
——————————
牛客網(www.nowcoder.com)
- 專業IT筆試面試備考平台
- 最全C++JAVA前端等互聯網技術求職題庫
- 全面提升IT編程能力
- 程序員交友聖地
分享了一些Web前端的面試題,限時一小時,你看看自己能夠答出多少道!
放心,這些面試題都是一些非常基礎的知識,只要你在平時認真聽課、學習了,那麼這些面試題肯定不會難道你。
建議:雖然沒有人監督你,但還是希望你不要去尋找答案,脫離網路,拿起紙筆,你試一下自己究竟能夠答出個什麼水平!有沒有真本領?答案盡在這些面試題里!那麼,你准備好了嗎?OK!計時開始!
一、HTML常見題目01、Doctype作用?嚴格模式與混雜模式如何區分?它們有何意義?
02、HTML5為什麼只需要寫?
03、行內元素有哪些?塊級元素有哪些?空(void)元素有那些?
04、頁面導入樣式時,使用link和@import有什麼區別?
05、介紹一下你對瀏覽器內核的理解?
06、常見的瀏覽器內核有哪些?
07、html5有哪些新特性、移除了那些元素?如何處理HTML5新標簽的瀏覽器兼容問題?
08、如何區分HTML和HTML5?
09、簡述一下你對HTML語義化的理解?
10、HTML5的離線儲存怎麼使用,工作原理能不能解釋一下?
二、CSS類的題目01、介紹一下標準的CSS的盒子模型?與低版本IE的盒子模型有什麼不同的?
02、CSS選擇符有哪些?哪些屬性可以繼承?
03、CSS優先順序演算法如何計算?
04、CSS3新增偽類有那些?
05、如何居中p?如何居中一個浮動元素?如何讓絕對定位的p居中?
06、display有哪些值?說明他們的作用。
07、position的值relative和absolute定位原點是?
08、CSS3有哪些新特性?
09、請解釋一下CSS3的Flexbox(彈性盒布局模型),以及適用場景?
10、用純CSS創建一個三角形的原理是什麼?
三、Java類的題目
01、介紹Java的基本數據類型。
02、說說寫Java的基本規范?
03、Java原型,原型鏈?有什麼特點?
04、Java有幾種類型的值?(堆:原始數據類型和棧:引用數據類型),你能畫一下他們的內存圖嗎?
05、Java如何實現繼承?
06、Java創建對象的幾種方式?
07、Java作用鏈域?
08、談談This對象的理解。
09、eval是做什麼的?
10、什麼是window對象?什麼是document對象?
OK,一小時到了,這個時間可不算短了,那麼這些面試題你答出了幾道呢?你寫的答案正確了嗎?現在你可以去翻看答案了。
如果你答出了絕大多數的或者是全部的題,並且答案也正確了,那麼恭喜你……
你這時心裡是不是有點小竊喜,認為自己有能力拿高薪了?雖然我也很想這么告訴你,但事實上這只能表明你的基礎扎實,畢竟這只是一些非常基礎的面試題。騷年~繼續努力吧!
如果你只答出了小部分或者答出了大部分題但答案不正確,那麼我只想說:「騷年,你的水平還差的遠呢。」連這么基礎的題你都打不出來,還想拿高薪?回去再練一段時間吧!
扎實的基礎是你拿高薪的重要武器,如果你連基礎都不扎實,那麼想要攻克「高薪」這個厚實的堡壘,那隻是痴人說夢罷了。
1.前端框架類問題,問你會不會用vue react啊
2.語言類,問你一些JavaScript語言的問題
3.項目經驗,讓你講講做過的項目,遇到的問題和解決之道
Ⅷ 高級前端面試題目大全(三)
解析: 第 41題
比如 sleep(1000) 意味著等待1000毫秒,可從 Promise、Generator、Async/Await 等角度實現
解析: 第 42 題
解析: 第 43 題
1、客戶端使用https的url訪問web伺服器,要求與伺服器建立ssl連接
2、web伺服器收到客戶端請求後, 會將網站的證書(包含公鑰)傳送一份給客戶端
3、客戶端收到網站證書後會檢查證書的頒發機構以及過期時間, 如果沒有問題就隨機產生一個秘鑰
4、客戶端利用公鑰將會話秘鑰加密, 並傳送給服務端, 服務端利用自己的私鑰解密出會話秘鑰
5、之後伺服器與客戶端使用秘鑰加密傳輸
解析: 第 44 題
解析: 第 45 題
1.使用第一次push,obj對象的push方法設置 obj[2]=1;obj.length+=1
2.使用第二次push,obj對象的push方法設置 obj[3]=2;obj.length+=1
3.使用console.log輸出的時候,因為obj具有 length 屬性和 splice 方法,故將其作為數組進行列印
4.列印時因為數組未設置下標為 0 1 處的值,故列印為empty,主動 obj[0] 獲取為 undefined
解析: 第 46 題
解析: 第 47 題
1、Function.prototype.apply和Function.prototype.call 的作用是一樣的,區別在於傳入參數的不同;
2、第一個參數都是,指定函數體內this的指向;
3、第二個參數開始不同,apply是傳入帶下標的集合,數組或者類數組,apply把它傳給函數作為參數,call從第二個開始傳入的參數是不固定的,都會傳給函數作為參數。
4、call比apply的性能要好,平常可以多用call, call傳入參數的格式正是內部所需要的格式
解析: 第 48 題
解析: 第 49 題
解析: 第 50 題
為什麼在 Vue3.0 採用了 Proxy,拋棄了 Object.defineProperty?
解析: 第 51 題
解析: 第 52 題
解析: 第 53 題
解析: 第 54 題
如下:{1:222, 2:123, 5:888},請把數據處理為如下結構:[222, 123, null, null, 888, null, null, null, null, null, null, null]。
解析: 第 55 題
解析: 第 56 題
解析: 第 57 題
解析: 第 58 題
解析: 第 59 題
解析: 第 60 題
解析: 第 61 題
解析: 第 62 題
解析: 第 63 題
解析: 第 64 題
解析: 第 65 題
解析: 第 66 題
隨機生成一個長度為 10 的整數類型的數組,例如 [2, 10, 3, 4, 5, 11, 10, 11, 20] ,將其排列成一個新數組,要求新數組形式如下,例如 [[2, 3, 4, 5], [10, 11], [20]] 。
解析: 第 67 題
解析: 第 68 題
解析: 第 69 題
解析: 第 70 題
解析: 第 71 題
[圖片上傳失敗...(image-2eeb30-1575446538468)]
<figcaption></figcaption>
解析: 第 72 題
解析: 第 73 題
解析: 第 74 題
解析: 第 75 題
解析: 第 76 題
示例 1:
示例 2:
解析: 第 77 題
解析: 第 78 題
解析: 第 79 題
解析: 第 80 題
解析: 第 81 題
解析: 第 82 題
解析: 第 83 題
習題: https://blog.csdn.net/qq_37024887/article/details/106784068
解析: 第 84 題
解析: 第 85 題
給定一個整數數組和一個目標值,找出數組中和為目標值的兩個數。
你可以假設每個輸入只對應一種答案,且同樣的元素不能被重復利用。
示例:
解析: 第 86 題
解析: 第 87 題
以下數據結構中,id 代表部門編號,name 是部門名稱,parentId 是父部門編號,為 0 代表一級部門,現在要求實現一個 convert 方法,把原始 list 轉換成樹形結構,parentId 為多少就掛載在該 id 的屬性 children 數組下,結構如下:
解析: 第 88 題
解析: 第 89 題
[圖片上傳失敗...(image-aea64e-1575446538470)]
解析: 第 90 題
解析: 第 91 題
[圖片上傳失敗...(image-21d53f-1575446538470)]
解析: 第 92 題
示例 1:
中位數是 2.0
示例 2:
中位數是(2 + 3) / 2 = 2.5
解析: 第 93 題
解析: 第 94 題
解析: 第 95 題
解析: 第 96 題
解析: 第 97 題
解析: 第 98 題
解析: 第 99 題
解析:[第 100 題]( https://github.com/Advanced-Frontend/Daily-