zoukankan      html  css  js  c++  java
  • 前端面试题

    1.html5新元素?

    HTML5 中一些有趣的新特性:

    ①用于绘画的 canvas 元素;
    ②用于媒介回放的 video 和 audio 元素;
    ③对本地离线存储的更好的支持;
    ④新的特殊内容元素,比如 article、footer、header、nav、section;
    ⑤新的表单控件,比如 calendar、date、time、email、url、search"
     2.兼容性问题

    1.浏览器默认样式清除

    2. Css透明问题
    IE:filter:Alpha(opacity=50); IE8及之前版本
    FF:opacity:0.6;
    [注] 最好两个都写,并将opacity属性放在下面。

    3. Css圆角问题
    IE:ie7以下版本不支持圆角。
    FF: -moz-border-radius:4px,或者-moz-border-radius-topleft:4px;-moz- border- radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz- border- radius- bottomright:4px;。

    3.JS的基本数据类型

    number,string,boolean,object,undefined   5种ES5

    还有一个symbol  Es6新增的

    4.怎样添加、移除、移动、复制、创建和查找节点?
    创建新节点
    createDocumentFragment() //创建一个DOM片段
    createElement() //创建一个具体的元素
    createTextNode() //创建一个文本节点
    添加、移除、替换、插入
    appendChild() //添加
    removeChild() //移除
    replaceChild() //替换
    insertBefore() //插入
    查找
    getElementsByTagName() //通过标签名称
    getElementsByName() //通过元素的Name属性的值
    getElementById() //通过元素Id,唯一性
    5.数组方法pop() push() unshift() shift()

    push()   尾部添加

    pop()尾部删除

    Unshift()头部添加

    shift()头部删除

    6.为什么要用IIFE

    简单来说就是为了能模块化,创建私有变量等等,很多类库(比如 jQuery)都用了这样的写法。

    7.Node.js的适用场景

    高并发、聊天、实时消息推送

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

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

    9.事件委托是什么

    利用事件冒泡的原理,让自己的所触发的事件,由他的父元素代替执行!
    通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件。

    10.call() 和 apply() 的区别和作用?
    ①apply()函数有两个参数:第一个参数是上下文,第二个参数是参数组成的数组。如果上下文是null,则使用全局对象代替。
    如:function.apply(this,[1,2,3]);
    ②call()的第一个参数是上下文,后续是实例传入的参数序列。
    如:function.call(this,1,2,3);
    11.你有哪些性能优化的方法
    (1) 减少http请求次数:CSS Sprites, JS、CSS源码压缩、图片大小控制合适;网页Gzip,CDN托管,data缓存 ,图片服务器。
    (2) 前端模板 JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数。
    (3) 用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能。
    (4) 当需要设置的样式很多时设置className而不是直接操作style。
    (5) 少用全局变量、缓存DOM节点查找的结果。减少IO读取操作。
    (6) 避免使用CSS Expression(css表达式)又称Dynamic properties(动态属性)。
    (7) 图片预加载,将样式表放在顶部,将脚本放在底部 加上时间戳。
  • 相关阅读:
    牛客训练三:处女座的训练(贪心)
    牛客训练二:处女座的砝码(数学题)
    牛客训练二:处女座的签到题(STL+精度+三角形求面积公式)
    牛客训练:小a与黄金街道(欧拉函数+快速幂)
    数论二(快速幂)
    数论一(欧拉函数+费马小定理)
    字典树模板
    springboot在idea的RunDashboard如何显示出来
    网关集成Swagger出现404错误
    maven一直加载2.0.0.M7 的 config server 失败
  • 原文地址:https://www.cnblogs.com/wangshengli520/p/10172922.html
Copyright © 2011-2022 走看看