滴滴前端面试2020

  1. 第一题 写一个判断所有数据类型的方法getType,入参为任意变量,返回值为该参数类型的字符串形式,如:
    getType([ ]) 返回 ‘array’
    getType(2) 返回 ‘number’
			function getType(obj){
			    var s  = Object.prototype.toString.call(obj);
			    return s.slice(s.indexOf(" ")+1,s.length-1).toLowerCase();
			}
  1. 第二题 至少用两种方法实现两列布局,左列定宽200px,右列自适应宽
		<style>
					#box{
						overflow: hidden;
						display: flex;
					}
					.left{
						/* float: left; */
						width: 200px;
						height: 500px;
						background-color: #0000FF;
					}
					.right{
						/* margin-left: 200px; */
						background-color: pink;
						height: 500px;
						flex: 1;
					}
		</style>
		<div id="box">
			<div class="left"></div>
			<div class="right"></div>
		</div>
  1. 输出结果是什么?请解释其技术原理
			var number = 50;
			var obj = {
				number:2,
				getNum:function(){
					var number = 6
					return this.number
				}
			}
			console.log(obj.getNum())//2 this指的是obj
			console.log(obj.getNum.call())//50  如果传入null也是50  this指的是windows
			console.log(obj.getNum.call({number:7}))//7  this的当前传入的对象
  1. 第四题 输出结果是什么?请解释其技术原理
			for(var index=0;index<5;index++){
				(function(){
					setTimeout(function(){
						console.log(index)
					},index*1000)
				})(index)
			}
			//5个5
			//for循环没有块级作用域 循环结束index为5 setTimeout为异步操作等循环结束后再执行
			//var 换成let可以达到同样的效果
			for(var i=0;i<5;i++){
				(function(i){
					setTimeout(function(){
						console.log(i)// 0 1 2 3 4
					})
				})(i)
			}
  1. 输出结果是什么?请解释其技术原理
			var test_b = 11
			console.log(window)
			if(!(test_a in window)){
				console.log(window)
				var test_a = 11

			}else{
				test_b++
			}
			console.log(test_a) //Undefined
			console.log(test_b) //12
			//全局的声明的变量都会成为window的属性(全局声明的funtion都会成为window的方法)
			//test_a test_b 都是属于window作用域下  test_a in window 为true 取反的话此时为false 走else分支
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值