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

    1. 请用至少3中方式实现数组去重?

    方法一: indexOf
    
    var arr1=[1,2,3,4,5,4,3,2,1];
      function repeat1(arr){
        for(var i=0,arr2=[];i<arr.length;i++){
          if(arr2.indexOf(arr[i])==-1){
            arr2.push(arr[i]);
          }
        }
        return arr2;
    }
    
    方法二: hash
    
    function repeat2(arr){
        // 1. 遍历arr中每个元素,同时声明hash
        for(var i=0,hash={};i<arr.length;i++){
          // hash中是否包含当前元素值的建
          // 如果不包含,就hash添加一个新元素,
          // 以当前元素值为key,value默认为1
          if(hash[arr[i]]===undefined){
              hash[arr[i]]=1;
          }
        }
        //  2. 将hash转为索引
        var i=0;
        var arr2=[];
        for(arr2[i++] in hash);
        return arr2;
    }
    
    方法三: 正则
    
    function repeat3(arr){
        return arr.sort()
                 .join(",,")
                 .replace(
                  /(^|,,)([^,]+)(,,2)*/g,
                  "$1$2")
                 .split(",,");
      }
    console.log(repeat3(arr1));

    2. HTTP状态码及其含义?

    1XX:信息状态码
    100 Continue 继续,一般在发送post请求时,
    已发送了http header之后服务端将返回此信息,
    表示确认,之后发送具体参数信息;
    
    2XX:成功状态码
    200 OK 正常返回信息
    201 Created 请求成功并且服务器创建了新的资源
    202 Accepted 服务器已接受请求,但尚未处理
    
    3XX:重定向
    301 Moved Permanently 请求的网页已永久移动到新位置。
    302 Found 临时性重定向。
    303 See Other 临时性重定向,且总是使用 GET 请求新的 URI。
    304 Not Modified 自从上次请求后,请求的网页未修改过。
    
    4XX:客户端错误
    400 Bad Request 服务器无法理解请求的格式,
    客户端不应当尝试再次使用相同的内容发起请求。
    401 Unauthorized 请求未授权。
    403 Forbidden 禁止访问。
    404 Not Found 找不到如何与 URI 相匹配的资源。
    
    5XX: 服务器错误
    500 Internal Server Error 最常见的服务器端错误。
    503 Service Unavailable 服务器端暂时无法处理请求
    (可能是过载或维护)。

    3. html5有哪些新特性、移除了那些元素?

    HTML5 现在已经不是 SGML 的子集,
    主要是关于图像,位置,存储,多任务等功能的增加:
    1) 绘画标签canvas;
    2) 用于媒介回放的 video 和 audio 元素;
    3) 本地离线存储 localStorage 长期存储数据,
    浏览器关闭后数据不丢失;
    4) sessionStorage 的数据在浏览器关闭后自动删除;
    5) 语意化更好的内容元素,
    比如article、footer、header、nav、section;
    6) 表单控件,calendar、date、time、email、url、search;
    7) webworker, websocket, Geolocation;
    
    移除的元素:
    1) 纯表现的元素:basefont,big,center,font, s,strike,tt,...
    2) 对可用性产生负面影响的元素:frame,frameset,noframes

    4. display: none;与visibility: hidden;的区别?

    相同点:它们都能让元素不可见
    
    不同点:
    display:none;会让元素完全从渲染树中消失,
    渲染的时候不占据任何空间;
    
    visibility: hidden;不会让元素从渲染树消失,
    渲染师元素继续占据空间,只是内容不可见;
    
    display: none;是非继承属性,
    子孙节点消失由于元素从渲染树消失造成,
    通过修改子孙节点属性无法显示;
    
    visibility: hidden;是继承属性,
    子孙节点消失由于继承了hidden,
    通过设置visibility: visible;可以让子孙节点显示;
    
    修改常规流中元素的display通常会造成文档重排。
    修改visibility属性只会造成本元素的重绘。
    
    读屏器不会读取display: none;元素内容;
    会读取visibility: hidden;元素内容

    5. 如何解决跨域问题?

    1) jsonp
    2) iframe
    3) window.name 
    4) window.postMessage 
    5) 服务器上设置代理页面

    6. XML和JSON的区别?

    1) 数据体积方面
    JSON相对于XML来讲,
    数据的体积小,传递的速度更快些。
    
    2) 数据交互方面
    JSON与JavaScript的交互更加方便,
    更容易解析处理,更好的数据交互。
    
    3) 数据描述方面;
    JSON对数据的描述性比XML较差。
    
    4) 传输速度方面:
    JSON的速度要远远快于XML。
  • 相关阅读:
    c#自动更新+安装程序的制作
    VS2013项目受源代码管理向源代码管理注册此项目时出错
    WinDbg配置和使用基础
    InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序)
    PowerDesigner 如何生成数据库更新脚本
    用户故事(User Story)
    Troubleshooting Record and Playback issues in Coded UI Test
    Coded UI
    compare two oracle database schemas
    How to: Use Schema Compare to Compare Different Database Definitions
  • 原文地址:https://www.cnblogs.com/gxq666/p/10125662.html
Copyright © 2011-2022 走看看