第一次视频面试给了小米前端

首先肯定是自身掌握的不好,实战经验多,基础原理掌握少,所以在面试这一块体现出了自身的不足,下面分享一下面试中hr提问的问题,以及我后来的总结。

第一部分是js相关(题目无前后之分)
  • js的数据类型有哪些
    • 字符串(string)、数字(number)、布尔(boolean)、空(null)、未定义(undefined)、独一无二的值(Symbol)
  • typeof null的结果
    • object
  • js原型链
    • 原型链的核心就是依赖对象的_proto_的指向,当自身不存在的属性时,就一层层的扒出创建对象的构造函数,直至到Object时,就没有_proto_指向了。
  • DOM绑定事件的原理,0级和1级的区别
第二部分是CSS
  • 实现水平垂直居中的方案
 // absolute实现垂直水平居中:
 //方案1:
.box{
    
    position:absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);}
//方案2:
.box{
    
    position:absolute;
    top:0;
    left:0;
    bottom:0;
    right:0;
    margin:auto;}  
  • flex布局中实现水平垂直居中的方案
// 方案1:
.wrap{
    
    display:flex;
        justify-content:center;
        align-items:center}(新版本)
//方案2:
.wrap{
    
    display:-webkit-box;
        -webkit-box-pack:center;
        -webkit-box-align:center}
第三部分是浏览器、HTTP
  • 跨域解决方案
    • jsonp解决跨域的实现原理
      • JSONP(JSON with Padding)是一种非官方跨域数据交互协议,它允许在服务器端集成< script >标签返回至客户端,通过javascript回调的形式实现跨域访问。因为同源策略的原因,我们不能使用XMLHttpRequest与外部服务器进行通信,但是< script >可以访问外部资源,所以通过JSON与< script >相结合的办法,可以绕过同源策略从外部服务器直接取得可执行的JavaScript函数
    • nginx代理解决跨域的实现原理
  • 从输入url到实现渲染的过程
  • 浏览器的强缓存和弱缓存
    • 强缓存(不会向服务器发送请求,直接从缓存中读取资源)
    • 弱缓存 (强制缓存失效后,浏览器携带缓存标识向服务器发起请求,由服务器根据缓存标识决定是否使用缓存的过程)
  • 原生ajax的实现过程
  • 304状态码
    在这里插入图片描述
编程
  • 平铺[1,2,3,[4,5,[6,7]]]
// 个人思路,仅供参考
// 先将多维数组转为字符串1,2,3,4,5,6,7,然后再用split()转为数组,设计到number类型,于是又转换了一下数据类型
function pingPu(arr){
    
    
	var str = String(arr)
	var arr1 =[]
	var arr2 = []
	arr1=str.split(",")
	for(var i=0;i<arr1.length;i++){
    
    
		arr2.push(parseInt(arr1[i]))
	}
	return arr2;
}
其它

因为我的简历上面写的是自己开发都是用vue,所以问了vue的相关问题

  • vue全家桶
    • vue全家桶,现在已经更新到vue3.0了,大家要与时俱进。
  • vue实现数据绑定的原理
  • vue父组件、子组件之间相互传值
    • 举一反三,这是我整理的各种组件的传值方式:组件传值
  • 实现响应式布局的方法
    • 我掌握的是bootstrap还有@media,目前正在学习element-UI
基础!基础!!基础!!!除去自身水平而言,整体的面试流程还是很好的,总结一下这次的经验教训,给大家分享一下,最后祝各位小伙伴们旗开得胜。

猜你喜欢

转载自blog.csdn.net/qq_40731976/article/details/100691814