滴滴一面|前端开发工程师|滴滴顺风车部门

首先是自我介绍,然后问我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,需要算出282/100=0.821-0.82=0.180.18*10=1.8
1.8=2

2.字符串算式

题目:一个字符串‘2*7-1/3+3*3’,求计算值

这个让手写代码。写了但是没考虑多种情况的概率;

反问

让面试官提出自己的不足。
面试官说我js基础不太好,算法需要坚持练习。

总体来说,这个面试官比较看重js基础知识。挺好的,每次遇到我没回复的出来的问题就帮我推理解答。继续学习~

猜你喜欢

转载自blog.csdn.net/weixin_43902063/article/details/115276141