js的一些經典面試題

2021-08-15 08:40:10 字數 1798 閱讀 5561

年底好多小夥伴找新工作,為了面試可謂是殫精竭慮啊,但還是免不了被面試官說的一臉懵逼。哈哈哈... 今天總結點經典面試題目,有些是es6,有些是es5。

不要吐槽我 -.-

1.記憶化斐波那契函式(memoization)
q1:陣列 [1, 1, 2, 3, 5, 8, 13, ....]

請你完成 fibonacci 函式,接受 n 作為引數,可以獲取數列中第 n 個數.

a1:

const fibonacci = ((memo = [0, 1]) => 

return result

} return fib

})()

2.解析字串
q2:完成乙個 extractstr 函式,可以把乙個字串中所有的 : 到 . 的子串解析出來並且存放到乙個陣列當中
a2:

const extractstr = (str) =>
3.safeget
q3:請你完成乙個 safeget 函式,可以安全的獲取無限多層次的資料,一旦資料不存在不會報錯,會返回 undefined
a3:

const safeget = (o, path) =>  catch (e) 

}

4.判斷兩個矩形是否重疊
q4:請你完成乙個函式 isoverlap 可以接受兩個矩形作為引數,判斷這兩個矩形在頁面上是否重疊
a4:

// 原理:

const isoverlap = (rect1, rect2) =>

const r1 =

const l2 =

const r2 =

if (

l1.x > r2.x ||

l2.x > r1.x ||

l1.y > r2.y ||

l2.y > r1.y

) return

false

return

true

}

5.spacify
q5:請你給字串都新增上原型方法 spacify,可以讓乙個字串的每個字母都多出乙個空格的間隔
a5:

string.prototype.spacify = function

()

6.按下標插入
q6:有兩個陣列,arr1=['item1', 'item2', 'item3', 'item4', 'item5'],arr2 = [,]

請你完成 injectsections 函式,最後結果是:['section1', 'item1', 'item2', 'section2', 'item3', 'item4', 'item5']

a6:

//研究了好一段時間 - - 

const injectsections = (items, sections) => ) => [index, content]))

/* 新建乙個陣列,然後往裡面 push 原來陣列的資料 */

return items.reduce((ret, item, index) => , )

}

一些經典的面試題

1 sizeof和strlen有哪些區別?1.sizeof操作符的結果型別是size t,它在標頭檔案中typedef為unsigned int型別。該型別保證能容納實現所建立的最大物件的位元組大小。2.sizeof是算符,strlen是函式。3.sizeof可以用型別做引數,strlen只能用ch...

Oracle的一些經典SQL面試題

例項1 測試資料 create table nba team varchar2 20 year number 4 sql select from nba team year 活塞 1990 公牛 1991 公牛 1992 公牛 1993 火箭 1994 火箭 1995 公牛 1996 公牛 1997...

一些面試題

q 您在什麼情況下會用到虛方法?它與介面有什麼不同?a 當在繼承類中想重寫某一方法時會用到虛方法 虛方法是類的成員函式,介面相當於抽象類.q override與過載有什麼區別?a override 就是覆蓋的意思,覆蓋父類的同名方法,而過載則是通過參數列來呼叫方法.q 值型別與引用型別有什麼區別?a...