zoukankan      html  css  js  c++  java
  • 撩课-Web大前端每天5道面试题-Day10

    1. px和em的区别?

    px和em都是长度单位;
    
    区别是: 
    px的值是固定的,指定是多少就是多少,
    计算比较容易。
    
    em得值不是固定的,并且em会继承父级元素的字体大小。
    
    浏览器的默认字体高都是16px;
    所以未经调整的浏览器都符合: 1em=16px;
    那么12px=0.75em, 10px=0.625em

    2. CSS 去掉inline-block元素间隙的几种方法?

    间隙是怎么来的:
    
    间隙是由换行或者回车导致的;
    只要把标签写成一行或者
    标签直接没有空格,就不会出现间隙;
    
    怎么去除?
    
    方法1:
    元素间的间隙出现的原因
    是元素标签之间的空格,
    把空格去掉间隙自然就会消失。
    
    <div class="itlike">
      <span>撩课itlike</span><span>撩课itlike</span>
    </div>
    
    方法2:
    利用HTML注释标签
    
    <div class="demo">
        <span>撩课itlike</span><!-- 
        --><span>撩课itlike</span>
    </div>
    
    方法3:
    取消标签闭合
    <div class="demo">
        <span>撩课itlike
        <span>撩课itlike
        <span>撩课itlike
        <span>撩课itlike
    </div>
    
    方法4:
    在父容器上使用font-size:0;可以消除间隙
    <div class="demo">
        <span>撩课itlike</span>
        <span>撩课itlike</span>
        <span>撩课itlike</span>
        <span>撩课itlike</span>
    </div>
    .demo {font-size: 0;}

    3. 在Javascript中什么是伪数组?如何将伪数组转化为标准数组?

    伪数组(类数组):
    无法直接调用数组方法,
     length属性有什么特殊的行为,
    但仍可以对真正数组遍历方法来遍历它们。
    
    典型的是函数的argument参数,还有像调
    getElementsByTagName,
    document.childNodes之类的,
    它们都返回NodeList对象,  这些都属于伪数组。
    
    可以使用Array.prototype.slice.call(fArray)将数组
    转化为真正的Array对象。

    4. 一次完整的HTTP事务是怎样的一个过程?

    基本流程:
    a. 域名解析;
    b. 发起TCP的3次握手;
    c. 建立TCP连接后发起http请求;
    d. 服务器端响应http请求,浏览器得到html代码;
    e. 浏览器解析html代码,并请求html代码中的资源;
    f. 浏览器对页面进行渲染呈现给用户

    5. 数组快速排序?

    思路:
    a)  在数据集之中,选择一个元素作为"基准"(pivot)。
    b)  所有小于"基准"的元素,都移到"基准"的左边;
        所有大于"基准"的元素,都移到"基准"的右边。
    c)  对"基准"左边和右边的两个子集,
        不断重复第一步和第二步,
        直到所有子集只剩下一个元素为止。
    
     var quickSort = function(arr) {
      if (arr.length <= 1) { return arr; }
      var pivotIndex = Math.floor(arr.length / 2);
      var pivot = arr.splice(pivotIndex, 1)[0];
      var left = [];
      var right = [];
      for (var i = 0; i < arr.length; i++){
        if (arr[i] < pivot) {
          left.push(arr[i]);
        } else {
          right.push(arr[i]);
        }
      }
      return quickSort(left).concat([pivot], quickSort(right));
    };

    6. 开发中有哪些常见的Web攻击技术?

    a) XSS(Cross-Site Scripting,跨站脚本攻击):
    指通过存在安全漏洞的Web网站注册用户的浏览器
    内运行非法的HTML标签或者JavaScript进行的一种攻击。
    
    b)SQL注入
    
    c) CSRF(Cross-Site Request Forgeries,跨站点请求伪造):
    指攻击者通过设置好的陷阱,强制对已完成的认证用户进行
    非预期的个人信息或设定信息等某些状态更新。

    7. 正则表达式验证邮箱格式?

    var reg = /^(w)+(.w+)*@(w)+((.w{2,3}){1,3})$/;
    var email = "yjh@itlike.com";
    console.log(reg.test(email));  // true  

    8. 正则表达式清除字符串前后的空格?

    function trim(str) {
        if (str && typeof str === "string") {
            // 去除前后空白符
            return str.replace(/(^s*)|(s*)$/g,""); 
        }
    }
  • 相关阅读:
    面向对象的思维
    343. 整数拆分
    413. 等差数列划分
    303. 区域和检索
    62. 不同路径
    char类型与int类型相加
    mybatis里面resultmap的问题
    easyui的datagrid如何获取一个对象里面的成员对象里面的属性?
    ==和equls的区别
    泛型的使用思想
  • 原文地址:https://www.cnblogs.com/gxq666/p/10129547.html
Copyright © 2011-2022 走看看