梳理一波面試題

2021-09-11 13:10:06 字數 2602 閱讀 1804

因為陣列和物件,typeof操作的返回值都是 object,所以我們需要用別的操作來區分它們的型別。

通過 constructor

var arr = [1, 2];

var obj = ;

console.log(arr.constructor === array); // true

console.log(obj.constructor === array); // false

複製**

通過 instanceof 運算子

console.log(arr instanceof array); // true

console.log(obj instanceof array); // false

複製**

通過 object.prototype.tostring

console.log(object.prototype.tostring.call(arr)); // [object array]

console.log(object.prototype.tostring.call(obj)); // [object object]

複製**

早期的時候,路由是交由後端處理的,url中的每個路徑都有相應的處理邏輯,後端已經都幫你寫好了,所以沒前端什麼事。但是後端路由存在乙個問題,就是每次切換頁面都要重新向伺服器傳送請求,這樣就造成了乙個延遲的問題,使用者體驗不大好,頁面複雜的話伺服器也亞歷山卓。

前端路由實現主要有兩種方式:

利用hash

在 html5 的 history api 出現之前,前端的路由都是通過 hash 來實現的。hash 的好處在於能相容低版本的瀏覽器,它的標誌就是 url 裡帶有 #。

實現原理:web 服務不會解析 hash,也就是說 url 中 # 後面的部分 web 服務會自動忽略,但 location.hash 可以取到這部分, 然後通過 hashchange 事件可以監聽 location.hash 的變化,從而進行相應的處理。

localhost:8080/#/index

console.log(location.hash) // #/index

複製**

利用h5的history

h5新增了兩個api,history.pushstate 和 history.replacestate,結合 window.onpostate 事件一起形成了一種新的路由方式。

history.pushstate 和 history.replacestate 都可以在不重新整理頁面的情況下改變 url 位址並操作瀏覽器的歷史記錄。不同之處在於,pushstate會增加一條新的歷史記錄,而replacestate則會替換當前的歷史記錄。

這種模式下的路由沒有 #,會看著美觀一點,但是需要後台配置支援,不然會報404, vue-router 文件裡也提到了這一點並給出了處理方法。

沒什麼難的,但是我在答題的時候腦袋抽風,怎麼都想不起來 substr() 方法,明明平時用到的次數還蠻多的,驚呆。

function

getstr

() return str2;

}複製**

平常開發中陣列的操作幾乎都是用 lodash 完成的,所以看到這種題目的第一反應就是 _.uniq([...]),呵呵。

方法一:

function fn1(arr)

return arr1;

}複製**

方法二:

function fn2(arr) )

return arr2;

}複製**

方法三:

function fn3(arr)

複製**

這個很基礎了,記錄一些常用的例子。值描述

none

該元素不會被顯示

block

該元素顯示為塊級元素,且元素前後帶有換行符

inline

預設。該元素顯示為內聯元素,元素前後沒有換行符

inine-block

行內塊元素(css2.1 新增的值)

table

該元素作為塊級**(類似 table)顯示,**前後帶有換行符

inline-table

該元素作為內聯**(類似 table)顯示,**前後沒有換行符

table-row

該元素作為乙個**行(類似 tr)顯示

table-cell

該元素元素會作為乙個**單元格(類似 td/th)顯示

inherit

從父元素繼承 display 的值

這篇文章是幾個月前跳槽面試的過程中寫的,前前後後邊工作邊面試大概面了10來家吧。進了新公司後一直很忙,沒能及時將其餘的面試題寫進文章裡,等現在再去回憶發現已經想不起來了。

只能等下次有機會再慢慢補充了。

5年java面試第一波面試題

下面是面試題,不分先後 1 說下activemq實現原理 2 怎麼改變字串的tostring方法 3 一條sql按照時間排序取前十條報錯怎麼解決?4 說一下分布式事務 5 說一下集合 list,hashmap 等原理 6 范型及其作用 7 jdk8的新特性 8 hashmap原理 重點重點重點 9 ...

2019前端面試題總結一波

語義化最實在的理解就是用正確的標籤做正確的事情,讓頁面的內容結構化 便於對瀏覽器 搜尋引擎解析 便於盲人瀏覽網頁 新增的h5標籤有 等 不同核心瀏覽器對html的識別 a.ie 核心瀏覽器識別 b.非 ie 核心瀏覽器識別 不同核心瀏覽器對css的識別 加瀏覽器核心的字首 例如 設定文字不可選取 對...

面試題 PHP面試題

建議 比如是系統配置,缺少了無法執行,自然使用 require 如果某一段程式少了,只是少了統計 訪問的,不是必不可少的。可以使用 include 而加不加 once 就是效率上的區別,雖然系統會幫你考慮只包含一次,但系統的判斷會降低效率,因此,更應該在開發之初,把目錄結構調整高好,盡量不使用 on...