记字节跳动暑期实习生面试
2019-04-01 本文已影响0人
RedLee666
一脸懵逼地过了笔试来到了面试,断断续续看完的JavaScript(引以为戒)。
说实话,当时还是认真准备了比较长的一段时间,尽管平时也在上课,但是每天都在抽时间复习,也看了一些面经,但是当面试的时候我还是懵逼了。。。不过大哥还是很nice,基本都给我讲了,记错的地方自行脑补或者去评论区,题目也是脑补回来的。。。
1.考察JavaScript基本类型,包括数组是用堆还是用栈(基本类型和对象的引用在栈中,引用类型在堆中),还有些其他和类型相关的。
console.log(1 == '1');
console.log(1 === '1');
console.log([1] == [1]);
console.log([1] === [1]);
console.log(0.1 + 0.2 == 0.3);
console.log(0.1 + 0.2 === 0.3);
2.考察作用域,问了些原型链的问题。
var a = 1
function b() {
a = 10;
return;
function a() {};
}
b();
console.log(a);
3.跨域的条件,解决方案,哪些情景会跨域等等,没往细了问。
4.写一个函数判断回文字符串,简便方法是转换成数组逆序再转换成字符串进行对比。
5.HTTP请求状态码。
6.考察对象的创建,问了一些相关问题,给了个构造函数和参数的例子,没写出来。。。
7.考察闭包,也没问什么,直接叫我写出sum函数。
console.log(sum(2,3).valueOf())//5
console.log(sum(2,3)(3).valueOf())//8
解:
function sum(num1, num2) {
let sum = num1 + num2;
let result = function (num3) {
sum += num3;
return result;
}
result.valueOf = function () {
return sum;
}
return result;
}
PS:研究一下柯里化。
失败总结:菜。