zoukankan      html  css  js  c++  java
  • Web大前端面试题-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。
     
     
     
  • 相关阅读:
    生产环境elk
    命令行操作es(转)
    makedown在线生成工具
    网站渗透测试工具zap2docker-stable
    ansible常用单模块
    程序员应该怎样和领导相处(转)
    Css设置毛玻璃
    tar.gz 文件解压
    Ubuntu:命令行安装可视化界面
    汇编语言开发总结
  • 原文地址:https://www.cnblogs.com/qingchunshiguang/p/10413813.html
Copyright © 2011-2022 走看看