2019年最新web前端笔试题
1.编写js代码实现冒泡排序
2.编写js代码实现数组去重(考虑性能)
3.编写css代码实现div水平垂直居中
4.编写js代码实现在一个数组中删除另一个数组存在的值
var arr = [1, 2, 3, 4, '1', 0, 1, 2, 'a', 'b'];
var brr = [1, 2, 'a'];
结果:[3, 4, "1", 0, "b"]
5.下面代码输出的是什么,并简单解释一下
var name = 'World!';
(function () {
if (typeof name === 'undefined') {
var name = 'Jack'
console.log('Goodbye ' + name)
} else {
console.log('Hello ' + name)
}
})()
6.React性能优化,渲染20000多条checkbox组件,点击选择checkbox组件的时候特别卡,如何解决
import React, { Component } from 'react'
import { Checkbox } from 'antd'
class App extends Component {
constructor(props) {
super(props)
this.state = {
checked: []
}
}
render() {
let list = this.list()
return (
<div>
{list}
</div>
);
}
}
Object.assign(App.prototype, {
componentDidMount() {
let arr = []
for (let i = 0; i < 20000; i++) {
arr.push(i)
}
this.setState({
checked: arr
})
},
list() {
let { checked } = this.state
let arr = []
for (let i = 0; i < 20000; i++) {
arr.push(<Checkbox key={i} checked={checked.indexOf(i) >= 0} onChange={this.handleChange.bind(this, i)}>{i}</Checkbox>)
}
return arr
},
handleChange(index, e) {
let { checked } = this.state
let tempIndex = checked.indexOf(index)
if (e.target.checked) {
if (tempIndex < 0) {
checked.push(index)
}
} else {
if (tempIndex >= 0) {
checked.splice(tempIndex, 1)
}
}
this.setState({
checked: checked
})
}
})
export default App
7.如何实现React父组件控制子组件执行不同的方法进行渲染
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)