前端题目
一、JS
相关
1. vuex
和window
下存对象保存数据有什么区别?
2. 什么是科里化?使用科里化实现下面输出都是一致的,在currying()
中输入你的代码
function currying(fn, ...rest1) {
return function(...rest2) {
return fn.apply(null, rest1.concat(rest2))
}
}
function curryingMore(fn, len) {
// 填入你的代码
}
function say(name, age, fruit) { console.log(我叫 ${name},我 ${age} 岁, 我喜欢 ${fruit}) }
const showMsg = curryingMore(say)
showMsg('小A', 20, '西瓜') // 我叫 小A,我 20 岁, 我喜欢 西瓜
showMsg('小B')(25, '南瓜') // 我叫 小B,我 25 岁, 我喜欢 西瓜
showMsg('小C', 22)('倭瓜') // 我叫 小C,我 22 岁, 我喜欢 西瓜
showMsg('小D')(28)('冬瓜') // 我叫 小D,我 28 岁, 我喜欢 西瓜
3. 说说继承的几种方式,并尝试手写出来
4. 什么是promise
,说说promise
需要遵循哪些规则?
5. 说说js
执行机制、事件循环、宏任务、微任务
6. 请实现一下防抖和节流
7. 深拷贝和浅拷贝的区别?怎么判断哪些情况需要深拷贝,哪些不需要?
8. 原型链和作用域链是什么?有什么区别?
9. 写出3
个使用this
的典型应用
10. promise、async
有什么区别?
11. 提升js
性能的方法?
12 介绍事件代理以及其优缺点
13. 请实现以下类似模板替换功能
14. 说说拖拽有哪些事件及其功能
15. async/await
的使用场景?如何解决连续请求时要等待上个await
完成后再执行下个await
的问题?
16. 说说你对diff
算法的理解,有几种算法形式?
17. three.js
遵循什么坐标系法则?说说对相机观测方向的理解
18. three.js
中的三大组件分别是哪些?都起到了什么作用?
19. three.js
中的相机默认位置是哪?如何调整相机观看方向?
20. 如何实现点击元素内部不隐藏该元素,点击元素外部则隐藏该元素?
21. 实现一个table
组件,满足第一行和第一列固定,剩余部分可以上下左右滚动
22. Promise
构造函数是同步执行还是异步执行,那么then
方法呢?
23. 箭头函数和普通函数(function)
的区别是什么?构造函数(function)
可以使用new
生成实例,那么箭头函数可以吗?为什么?
24. ES6
代码转成ES5
代码的思路是什么?
25. 请实现一个new
方法
26. 下面的代码输出什么?
var a = 10;
(function () {
console.log(a)
a = 5
console.log(window.a)
var a = 20;
console.log(a)
})()
27. 模拟实现一个Promise.finally
28. redux
为什么提倡reducer
设计成纯函数
29. 打印出1 - 10000
之间的所有对称数,如11,121,1221
30. 实现convert
方法,把原始list
转换成树形结构,要求尽可能降低时间复杂度
31. 写出如下代码的返回值,并解释为什么?
String('11') == new String('11');
String('11') === new String('11');
32. 请写出如下代码的打印结果
var name = 'Tom';
(function() {
if (typeof name == 'undefined') {
var name = 'Jack';
console.log('Goodbye ' + name);
} else {
console.log('Hello ' + name);
}
})();
var name = 'Tom';
(function() {
if (typeof name == 'undefined') {
let name = 'Jack';
console.log('Goodbye ' + name);
} else {
console.log('Hello ' + name);
}
})();
33. 如何遍历一个dom
树
34. 手写代码,简单实现call
35. 手写代码,简单实现apply
36. 手写代码,简单实现bind
37. 介绍JS
有哪些内置对象?
38. common.js
和es6
中模块引入的区别?
39. 了解v8
引擎嘛,一段js
代码如何执行的
40. 为什么虚拟dom
会提高性能?
41. 说说深度优先遍历和广度优先遍历
42. 模拟实现一个Promise.race()
43.如何实现ajax
请求
44. JavaScript
严格模式下有哪些不同?
45. document load
和document ready
的区别
二、css
相关
1 . 使一个长方形垂直居中的方法有哪些?
2. 盒模型有哪些以及它们之间的区别?
3. px、em、rem
的区别
4. 如何使padding
不影响元素大小?
5. 已知如下代码,如何修改才能让图片宽度为300px?注意下面代码不可修改
<img src="1.jpg" style="width:480px!important;”>
<img src="1.jpg" style="width:480px!important; max-width: 300px">
<img src="1.jpg" style="width:480px!important; transform: scale(0.625, 1);" >
<img src="1.jpg" style="width:480px!important; width:300px!important;">
6. 说说sass
中的继承?何时使用
三、html
相关
1. jpg
和png
的区别是什么?
2. link
和@import
的区别
3. src
和href
的区别
4. iframe
有哪些缺点?
5. 什么是虚拟dom
?它与真实dom
的区别是什么?
6. 说说你对行块元素的理解,如何搭建优雅的html
页面?
7. 重绘和回流(重排)的却别和关系?
8. 如何最小化重绘(repaint)
和回流(reflow)
?
9. Virtual Dom
相对真实Dom
的优势?
10. 简要介绍HTML5
的新特性
四、VUE
1. 说说Vue
的template
编译
2. Vue
组件中的data
为什么必须是函数?
3. 在vue
中什么时候用jsx
比较好
4. v-if、v-show、v-html
的原理是什么,它是如何封装的?
5. 说说组件化的思路及理解
6. 你了解active-class
么?是哪个组件的属性
7. 说说Vue
响应式原理
五、webpack
1. webpack
打包vue
速度太慢怎么办?