最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 滴滴面试尴尬+愉快之旅

    正文概述 掘金(Lovi)   2021-04-16   653

    前言

    今天第一次面试的我无比紧张,面试遇到一个很好的面试官,让人感觉很亲切。当面试官问我的问题不懂时,面试官会让去我百度,了解后再解释给他听,然而百度我也找不到,只能尴尬的说不会,让面试官给我解释这个问题。在面试最后和面试官聊天的过程中也很愉悦,也给了我很好的建议。下面我将给大家介绍我的面试题!

    flex:7 1 100px中这三个参数你知道什么意思吗?

    下面我们通过例子来解释一下吧!

    flex子元素伸缩属性

    • 第一个参数表示: flex-grow 定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大
    • 第二个参数表示: flex-shrink 定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小
    • 第三个参数表示: flex-basis给上面两个属性分配多余空间之前, 计算项目是否有多余空间, 默认值为 auto, 即项目本身的大小

    1. 扩大情况

       <style>
        .item {
        display: flex;
        width: 500px;
        height: 100px;
      }
      .item0 {
        width: 50px;
        flex: none;
        background-color: red;
      }
      .item1 {
        flex: 1 1 50px;
        background-color: green;
      }
      .item2 {
        flex: 7 1 100px;
        background-color: blue;
      }
        </style>
        <body>
        <div class="item">
            <div class="item0">0</div>
            <div class="item1">1</div>
            <div class="item2">2</div>
        </div>
    </body>
    

    滴滴面试尴尬+愉快之旅 滴滴面试尴尬+愉快之旅 滴滴面试尴尬+愉快之旅 滴滴面试尴尬+愉快之旅

    看到上面的效果来分析结果吧

    为什么item0设置的是50px,还是50px呢?

    为什么item1设置的是50px,怎么变成87.5px呢?

    为什么item2设置的是100px,怎么变成362.5px呢?

    空间充足时,flex子项的宽度计算公式是: 自身的基础宽度 + 容器剩余宽度 *(自身伸张比例 / 所有子项伸张比例之和),要注意两种缩写

    1. flex:none是flex: 0 0 auto的缩写
    2. flex:num 是flex:numb 1 0%的缩写。如flex:1 => flex: 1 1 0%。

    2. 缩小情况

     <style>
       .item00 {
        display: flex;
        width:300px;
        height: 100px;
      }
    
     .item0 {
        width:300px;
        background-color: red;
      }
      .item1 {
        flex: 1 1 100px;
        background-color: green;
      }
      .item2 {
        flex: 2 2 200px;
        background-color: blue;
      }
        </style>
    

    滴滴面试尴尬+愉快之旅

    滴滴面试尴尬+愉快之旅

    滴滴面试尴尬+愉快之旅

    滴滴面试尴尬+愉快之旅空间充足不足时,flex子项的宽度计算公式是: 自身的基础宽度 - 超出宽度 *(自身宽度*收缩比例/总权重)

    注意flex:num这种缩写写法,展开相当于flex:num 1 0%,此时的flex-basis是0%,不是设置的width;计算总权重时该项的权重为0

    将头像边框改为圆?

    滴滴面试尴尬+愉快之旅

    原来的css样式 滴滴面试尴尬+愉快之旅 修改后的css样式 滴滴面试尴尬+愉快之旅

    回答: 长度和宽度相等,border-radius设置为长度(宽度)的一半。因为这个头像的长宽都是32px,所以最合适的就是16px。

    滴滴面试尴尬+愉快之旅

    遍历嵌套对象

    1. 方法一
    let obj = {
        a:{
            b:{
                c:666
            }
        }
    }
     
    var str = 'a.b.c';
    const getData = ()=>{
      var newArr =  str.split('.').reduce((o,s)=>{ return  o[s]},obj)
        return newArr
    }
    console.log( getData());
    
    1. 方法二
    let obj = {
        a:{
            b:{
                c:666
            }
        }
    }
     
    var str = 'a.b.c';
    const getData=(obj,str)=>{
     str.split('.').forEach(element =>{ 
         obj= obj[element]
    })    
    return obj;
    }
    console.log(getData(obj,str));
    
    

    这道题的重点就是要知道检索对象中包含的值有什么方法。

    方法有两种:

    1. []后缀中包括住一个字符串表达式的方法 如:obj[a]
    2. 可以使用.表示法 如:obj.a

    其中上面的解法就是采用[]的方法来解决这道题的。

    总结

    通过这次面试我了解了自己的不足,也从面试官的谈话中得到了许多好的建议。继续加油吧!冲冲冲!

    如果遍历嵌套对象更好的方法,可以在评论区下留言哦!大家一起互相学习一番!

    最后给大家一个对于项目的建议:最好有一个自己的idea做出来的项目,因为面试官更喜欢从项目里来了解你。

    本人大三,正在学习前端知识!


    起源地下载网 » 滴滴面试尴尬+愉快之旅

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元