由于疫情影响,一面是线上进行的,面试小哥很友好,下面是我的面试题整理,废话少说。直接上代码
function Person(name) {
this.name = name
}
let p = new Person('Tom'); 复制代码
1. p.__proto__等于什么?
2. Person.__proto__等于什么?
答案:
p.__proto__
->{constructor: ƒ}
Person.__proto__
->ƒ () { [native code] }
var foo = {};
var F = function(){};
Object.prototype.a = 'value a';
Function.prototype.b = 'value b';
console.log(foo.a)
console.log(foo.b)
console.log(F.a)
console.log(F.b)
答案:
value a
undefined
value a
value b
状态码代表什么意思?400 401 402 403 404 304
请参考:http常见的状态码,304,400,403,404,505等状态码分别代表什么?
实现一个flatten方法,使得输入一个数组,该数组里面的元素也可以是数组,该方法会输出一个扁平化的数组。
let givenArr = [[1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14]]]], 10];
let outputArr = [1,2,2,3,4,5,5,6,7,8,9,11,12,12,13,14,10]
答案:
functionflatten(arr){
var res = [];
for(var i=0;i<arr.length;i++){
if(Array.isArray(arr[i])){
res = res.concat(flatten(arr[i]));
}else{
res.push(arr[i]);
}
}
return res;
}
或:
functionflatten(arr){
while(arr.some(item=>Array.isArray(item)){
arr = [].concat(...arr);
}
return arr;
}
let、const 以及 var 的区别是什么?
答案:略…
如何判断一个变量是不是数组?这题当时答的是先用typeof 判断为对象再判断长度,不太准确,最简单的方法为:
[] instanceof Array //true
Array.isArray([]) //true
详细方法:判断变量是否为数组方法
console.log(1+'2'+'2');
console.log(+'1'+-'2'+'2');
console.log('M'+'T'+'2');
console.log('M'-'T'+2);
答案:
122
-12
MT2
NaN
这些问题有会的,也有答不上来的,但是我都如实的跟面试小哥回复了,面完以后,小哥问我有啥想问的没,最后简单聊了下美团工作环境啊,学习氛围啊等,不知结果如何,后续我再更新叭