虽然这些面试题都是很基础的,但也花时间记一下吧,没准下次再跳的时候能用到。
1. 如何将伪数组转换为真数组
首先你得清楚伪数组概念,伪数组转真数组方法如下:
let obj = { length: 3, 0: 'a', 1: 'b',2:'c' };
// 方法一
Array.from(obj)
//方法二(这几种方法大同小异)
Array.prototype.slice.call(obj)
Array.prototype.slice.apply(obj)
Array.prototype.splice.call(obj,0,obj.length)
//方法三
obj.__proto__ == Array.prototype
//方法四
let arr = [];
for(let key in obj){
key !== "length" && arr.push(obj[key])
}
//一般上能说出前两种方法就OK了(一种ES5的方法和一种ES6的方法)
2. 数组有哪些方法
控制台输入 Array.prototype
然后看到自己不清楚就百度吧!
清楚的概念是指:知道怎么用,操作完以后返回的是什么,是否会对原数组进行修改,如果像是遍历数组的话,一定要清楚参数和返回值
重点看下splice和slice的区别,还有数组的遍历方法
3.字符串有哪些方法
电话面试和现场面试都问了
记住常用的几个方法:字符串截取,英文字母的大小写转化,分割字符串,再讲几个ES6字符串的方法就差不多了。
4.对象有哪些方法,你平常工作中哪些用的比较多。
数组方法你们自己去百度,这里我说几个我平时常用的
//浅拷贝(对浅拷贝要了解)
Object.assign()
Object.keys()
Object.entries()
Object.values()
Object.hasOwnProperty()
//说实话这个用的比较少,但是数据劫持是通过这个方法,所以还是要了解如何使用
Object.defineProperty()
//判断两个值是否相等,如果你说了这个那你一定要对 == 和 === 有所了解,还有 == 的隐式转换要清楚
Object.is()
5.深拷贝和浅拷贝
要熟悉使用数组的浅拷贝和对象的浅拷贝,深拷贝的话自己去封装一个深拷贝的方法(如果会的话就不用了)
6.null和undefine的区别
7.创建一个类有哪几种方式
7和8自己百度吧
8.js如何实现继承
9.post请求与get请求有什么不同
10.H5CSS3 有哪些内容
等你说完,可能会问你localStorage和sessionStorage有什么区别
语义化的标签如何正确使用(哈哈,我上次面试一个小伙伴,他说了一些新的语义标签,然后我立马就反问他,如何合理的使用这些标签,然后他就答不上来了)
flex布局要重点掌握一下
@media如何使用要清楚(还是那个小伙伴,他说他移动端比较熟,然后叫他写一个简单的媒体查询规则他都写错了)
11.ES6有哪些东西
结构赋值,拓展运算符...反正哪些ES6基础的东西基本上要会用
Promise Class要熟悉
像Set Map Reflect 这些你就看着说吧
12.判断一个数据的类型有哪几种方法
13.什么是闭包,闭包有哪些特点,哪些场景用过闭包
我觉得问哪些场景用过闭包这个问的很骚,因为我百度都没找到合适的答案
14.js延迟加载有哪些方法
15.session是什么?
16.ajax实现的原理以及优缺点
17.解决跨域的办法
18. position有哪些选项
19.一个div中有一个img和span,如何让文字与图片中间对齐
img{
vertical-align:middle
}
20.状态码有哪些,是什么意思
死记硬背记住了10多个
21.css动画与js动画哪个好一点?
21,22,23,24,25是华为外包的面试题,面试官是华为的,面试官是搞后台的。哎,他问了我两个题,我就不想面了。
22.数组有哪些排序,手写一个数组的冒泡排序
23.进程和线程是什么?
24.Ant Design 的国际化怎么用?
我感觉问这种问题挺难受的。我就直接跟她说看文档,难道这种东西也要我记在脑子里么。一个项目就用一回的东
西。我好想反问他,能不能不看Bootstrap文档,敲几个bootStrap组件出来。
25.ifram有哪些优缺点
知道有这个东西,但真没用过。百度查了一下,这东西都快抛弃了。
26.jQ如何扩展一个属性或者方法
27.vue
如果你简历上没写会vue的话,估计下面这些也不会问道(下面这些都是我被面试官问过的)
vue的组件传值
vue的生命周期
vuex的核心,作用是什么么?如何使用
mutation有几个参数
vue-router有几个守卫导航
vue的指令,分别代表什么意思
vue的修饰符
什么时候要用到状态管理
vue数据双向绑定的原理
vue路由传参了解一下
有几种创建vue组件的方式
28.webpack
webpack打包的时候遇到过什么错误?
webpack的插件用过哪些?配置过哪些插件?
webpack打包过哪些类型的文件,如何处理的
29.react
总的说来,react也没我几个问题
react创建组件的几种方式
React.createElement 与 React.cloneElement 有什么区别?
30.有些面试官会让你谈谈自己满意的一个项目。然后再聊一些工作中遇到的问题,如何解决。
31.有个电话复试的时候问我怎么进行联调。
32.有没有封装过组件,网页性能怎么优化。
33.网页是如何渲染出来的,客户端与服务器之间发生了些什么事情,知道多少说多少。
33.最后我再写几个面试中我还记得的笔试题
//闭包
function fun(n,o) {
console.log(o)
return {
fun:function(m){
return fun(m,n);
}
};
}
var a = fun(0); a.fun(1); a.fun(2); a.fun(3);
会输出什么
let startTime = new new Date().getSeconds();
for(var i = 0;i<5;i++){
setTimeOut(function(){
console.log(new Date().getSeconds() - startTime , i )
},1000)
}
console.log(new Date().getSeconds() - startTime , i )
大概就这么些吧,记得不是很清楚了。
语言表达最好流畅一点,这样在自我介绍和介绍自己满意项目的时候可以给面试官留个好印象。我觉得我这点做的相当的差。
总的来说,基础要好,其他的就靠运气了。