滴滴
约 743 字大约 2 分钟
2024-04-06
笔试题
- 用 JS 实现二分查找(折半查找)算法,并写出时间复杂度。有序数组
function fn(arr, target) {
let L = 0
let R = arr.length - 1
while(L <= R) {
let center = ((L + R) / 2)
if (target = arr[center]) {
return center
} else if (target > arr[center]) {
L = center + 1
} else {
R = center - 1
}
}
return -1
}- 用 JS 实现深拷贝
function deepCopy(obj) {
if (typeof obj !== 'object') return obj
let newObj = {}
for(let key in obj) {
newObj[key] = deepCopy(obj[key])
}
return newObj
}面试官觉得实现的有点简单,一个是typeof null也是object,另一个是没处理数组
- 给定由 a-z A-Z 空格 组成的一个字符串,要求:按字典序输出该字符串中出现的全部字母(转化为小写),并给出时间复杂度 输入:sdAgaas 输出:adgs
function fn(str) {
let arr = str.toLowerCase().split('')
let array = []
for(let i = 0; i < arr.length; i++) {
if (!array.includes(arr[i])) {
array.push(arr[i])
}
}
array.sort((a, b) => {
return a.charCodeAt() - b.charCodeAt()
})
return array.join('')
}- 如下代码,分别弹出什么?
// 题目一:
var a = 100
function create() {
var a = 200
return function () {
alert(a)
}
}
var fn = create()
fn()200
// 题目二:
var a = 100
function invoke(fn) {
var a = 200
fn()
}
function fn() {
alert(a)
}
invoke()100
- 用 flex 实现下图效果。容器宽高不定,子元素宽高固定?
- 现有瀑布流式图片页面(页面下拉时无限加载图片),用 JS 监听每个图片的点击事件。
主要考察事件委托
- 执行如下代码,然后点击每个
<a>标签分别弹出什么信息?并写明原因。
let $body = $('body')
let arr = [1, 2, 3, 4, 5]
let i, length = arr.length, $a
for(i = 0; i < length; i++) {
$a = `<a>${i}</a>`
$body.append($a)
$a.click(function() {
alert(i)
})
}5,5,5,5,5
- 执行下边的代码会打印出什么?
const obj = {
a: 100
}
const obj1 = obj;
let a1 = obj.a;
obj1.a = 200
console.log(obj.a)
console.log(a1)
a1 = 300
console.log(obj.a)
console.log(obj1.a)200,100,200,200
- 执行如下代码,会输出什么信息?
// 题目一
setTimeout(function () {
console.log(100)
})
console.log(200)
Promise.resolve().then(() => {
console.log(300)
})200, 300, 100
// 题目二
new Promise(() => {
throw new Error()
}).then(() => {
console.log(1)
}, () => {
console.log(2)
}).catch(() => {
consol.log(3)
}).then(() => {
console.log(4)
})2, 4
- 执行如下代码,abc 会是什么颜色? 并且说明原因。
<style>
#p1 {
color: red;
}
p.container {
color: blue;
}
.p {
color: yellow;
}
</style>
<p id='p1' class='container p'>abc<p>简答题:
就上边的笔试题提问了下
二面
就项目提问 每一个项目写的东西一条条提问
其他:
- 页面白屏时间过长怎么处理?
- 多个CDN资源请求造成堵塞怎么办?(回答了http请求,主要说了h1的线头阻塞,使用h2)