首先是自我介绍,然后问我js,css,算法哪个学的好一点,我说js。然后问我算法怎么样,我说一般。
然后就开始给我面试我的js基础
js
这次面试都是代码题,所以直接贴代码啦
第一题
Object.prototype.a='a';
Function.prototype.a='a1';
function Person(){
};
var didi = new Person();
console.log(didi.a);
console.log(Person.a);
console.log(didi.__proto__.__proto__.constructor.constructor);
我第三个没有回答出来,原型链还要好好学习;解释什么是原型链;
第二题
function bar(){
console.log(myName);
}
function foo(){
var myName = 'xiaojv';
bar()
}
foo()
var myName='didi';
这个设计变量提升的知识,也没学好;
第三题
<body>
<button id="test">test第三题</button>
</body>
<script>
//点击按钮有反应吗,为什么,怎么解决
$('#test').click(function(argument){
console.log(1)
});
while(true){
console.log(Math.random());
}
setTimeout(()=>{
console.log(1);
})
</script>
这个主要是eventloop的知识,宏任务微任务的执行顺序;
第四题
var Object={
a:5,
method:function(){
console.log(this.a);
// }
}
var b = Object.method;
// var b = Object.method.bind(null);
// Object.method.call(null);
b();
这个后面又问了bind,call,apply的区别;
又让讲了 foreach,for…in… for… of 的区别;
算法题
1.算出0-100之间学生的学生等级,如90-100为等级1,0,890为等级2以此类推。不允许使用if switch等;
答案:例如这个数为82,需要算出2;
82/100=0.82;
1-0.82=0.18;
0.18*10=1.8
1.8=》2
2.字符串算式
题目:一个字符串‘2*7-1/3+3*3’,求计算值
这个让手写代码。写了但是没考虑多种情况的概率;
反问
让面试官提出自己的不足。
面试官说我js基础不太好,算法需要坚持练习。
总体来说,这个面试官比较看重js基础知识。挺好的,每次遇到我没回复的出来的问题就帮我推理解答。继续学习~