前端面试01

1.pc端常见兼容问题?

1.不同浏览器的标签默认的外补丁和内补丁不同

      问题 :随便写几个标签,不加样式控制的情况下,各自的 marginpadding 差异较大

  解决方法:在样式css里添加通配符 *(margin:0,paddin:0)

2.块属性标签float后,又有横行的margin情况下,在ie6显示margin比设置的的大

     问题ie6中后面的一块被顶到下一行

     解决方法: float的标签样式中加入display:inline,转化为行内样式。

3.超链接hover点击后失效,使用正确的书写顺序 link  visited  hover  active

4.谷歌文字大小12px以下不显示。

2.移动端常见兼容问题?

 1、安卓浏览器看背景图片,有些设备会模糊

     必须使用 2x 的背景图片来代替img 标签

  2、移动端点击300ms延迟问题

     因为300ms导致用户体验不是很好,我们一般在移动端用tap事件来取代click事件。

  3、移动端点透问题

      尽量使用touch事件来替换click事件,比如touchend事件

  4、图片加载慢

     手机开发一般用 canvas 方法加载

  5、圆角bug  某些android手机圆角失效。

  设置background-clip:padding-box;

3.div 盒子水平居中?

 1.absolute + transform: 绝对定位+ 转换

  2.flex+justify-content+align-items(弹性模型)

4.css动画的实现?

@keyframes  动画名字 {

from {    ;}

to {   ;}


或者 

0%  {   ;}  

50% {  ;}

100% {    ;}

}

5.H5中canvas的理解?

canvas 是 h5 新增的组件,就像是一块幕布。 可以用 javascript 在上面绘制各种图表、动画。

可以绘制 2D \ 3D 

6.如何实现跨域的,jsonp 的理解?

跨域:指的是浏览器不能执行其他网站的脚本。

原因:是由浏览器同源策略造成的,是浏览器施加的安全限制。(域名、端口号、协议均相同不会出现跨域)

解决方法:

   1,jsonp 

      定义: jsonp 是一个非官方的协议,它允许在服务器端继承 script tags 返回至客户端,通过 javascript callback 的方式实现跨域访问。

      优点:它不像XMLHttpRequest 对象实现的Ajax请求那样受到同源策略的限制;它的兼容性更好,在更加古老的浏览器中都可以运行,

      不需要XMLHttpRequest ActiveX支持;并且在请求完毕后可以通过调用callback的方式回传结果。

      缺点:只支持GET请求而不支持post等其他类型的HTTP请求;

      原理: 动态添加一个<script>标签,而script标签的src属性是没有跨域的限制的 

   2,反向服务器代理 

   3,php 添加响应头

       addHeader(‘Access-Control-Allow-Origin:*’);//允许所有来源访问 

  addHeader(‘Access-Control-Allow-Method:POST,GET’);//允许访问的方式

   4,跨域资源共享(cors)前端只需要设置是否带 cookie

7.什么是闭包?闭包的例子?

闭包:就是能够读取其他函数内部变量的函数;

优点:防止污染全局作用域,对私有变量起保护作用;

缺点:占内存,使用不当会造成内存泄漏;

8.对ajax 的理解?

Ajax原理:

   实际上就是通过 XmlHttpRequest对象来向服务器发异步请求,从服务器获取数据,然后通过javascript来操作dom而更新页面。

Ajax优点:

           1、无刷新更新数据,减少用户等待的时间,更好的用户体验。

         2、异步与服务器通信,无需打断用户,响应更加迅速。

         3、减轻服务器和带宽的负担,节约空间和宽带成本。

         4、Ajax的原则是“按需取数据”,可以最大程度的减少冗余请求和响应对服务器造成的负担,提升站点性能。

         5、基于标准化,广泛被支持。

Ajax缺点:

         1、破坏了前进后退功能,用户往往通过后退按钮来取消上一步操作,但是ajax无法实现。

    可以使用Gmail来解决这个问题,通过创建或使用一个隐藏的iffame来重现页面上的变更。

        2、安全问题。Ajax的逻辑可以对客服端的安全扫描技术隐藏起来,允许黑客从远端服务器上建立新的攻击。

        3、对搜索引擎支持较弱

        4、一些手持设备不能很好的支持。

9.同步和异步的区别

web中的同步和异步:

  同步请求:顺序处理,当我们向服务器发送请求时,在服务器没有返回结果之前,我们需要一直等待服务器响应,才能继续操作;

    优点:同步的出现解决了多线程的安全问题;

    缺点:耗费资源,影响运行效率,会堵塞;

 异步请求:并行处理,当我们向服务器发动请求时,在服务器没有返回结果之前,可以继续执行,function 会被放在对列中;

  优点:不堵塞;

ajax中的同步和异步的区别:

   ajax中的open方法中,第三个参数设置同步或者异步;

   同步: async = false,客户机需等待服务器返回结果;

   异步:async = true, 客户机不等待服务器响应;

10.ajax返回的数据类型?

1.text/Html 格式:直接当做字符串用就可以;

2.xml 格式: 返回的是xml dom 对象,

3.json格式

11.cookie 和本地存储的区别?

存储方式:
    cookie: 在服务器和浏览器间来回传递。
   sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。
大小:
     cookie 数据不能超过4k,因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。
     sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。
数据有效期不同:
    cookie可以设置有效期,有效期前浏览器关闭仍然有效,默认是浏览器关闭无效;
    localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;
    sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;

12.localStorage用法

清空localStorage :
  localStorage.clear()存储数据:
  localStorage.setItem()
读取数据:
  localStorage.getItem()
                                                                                                                  


猜你喜欢

转载自blog.csdn.net/itlishuang/article/details/79933415