1

xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
Babel默认只转换新的JavaScript句法(syntax),而不转换新的API,
postMessage(data,origin)方法接受两个参数

  • 性能优化
    1. 请求包大小
    2. 懒加载,预加载
    3. 图片压缩, sprite
    4. cdn 缓存
  • http请求和响应的四部分
  • readystate和status 1open2send3ing4ed
    1xx消息这一类型的状态码,代表请求已被接受,需要继续处理
    3xx重定向需要客户端采取进一步的操作才能完成请求
    4xx客户端错误代表了客户端看起来可能发生了错误,妨碍了服务器的处理
    5xx服务器错误服务器无法完成明显有效的请求
    所有状态码
  • http缓存控制 e-tag
    ETag是HTTP协议提供的若干机制中的一种Web缓存验证机制,并且允许客户端进行缓存协商。这就使得缓存变得更加高效,而且节省带宽。如果资源的内容没有发生改变,Web服务器就不需要发送一个完整的响应
    Cache-Control: max-age=
  • https
  • get和post 可不可以在表单中用delete
    GET产生一个TCP数据包;POST产生两个TCP数据包。
    GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
    而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)
    POST表示可能修改变服务器上的资源的请求
    GET在浏览器回退时是无害的,而POST会再次提交请求。
    GET产生的URL地址可以被Bookmark,而POST不可以。
    GET请求会被浏览器主动cache,而POST不会,除非手动设置。
    GET请求只能进行url编码,而POST支持多种编码方式。
    GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
    GET请求在URL中传送的参数是有长度限制的,而POST么有。
    对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
    GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
    GET参数通过URL传递,POST放在Request body中。
    POST比GET安全,因为数据在地址栏上不可见
    GET使用URL或Cookie传参,而POST将数据放在BODY中。
  1. GET方式提交的数据有长度限制,则POST的数据则可以非常大。

  2. POST比GET安全,因为数据在地址栏上不可见。

  • xss crsf攻击和防御 eval 转义

  • 跨域的方法 ,跨域会带cookie么

  • mvc和mvvm及原理

  • 类数组的操作及转化

  • 发布订阅和事件中心

  • jpg等图片的差别


    1_第1张图片
    image.png
  • 防抖//用户名校验
    在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。

  • 节流//滚动页面
    规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只有一次能生效。

  • 正则实现trim()

  • 缓存和304
    强缓存是利用http头中的Expires和Cache-Control两个字段来控制的,用来表示资源的缓存时间。强缓存中,普通刷新会忽略它,但不会清除它,需要强制刷新。浏览器强制刷新,请求会带上Cache-Control:no-cache和Pragma:no-cache
    Etag和If-None-Match
    Last-Modify/If-Modify-Since当浏览器再次请求该资源时,request的请求头中会包含If-Modify-Since,该值为缓存之前返回的Last-Modify。服务器收到If-Modify-Since后,根据资源的最后修改时间判断是否命中缓存。
    协商缓存就是由服务器来确定缓存资源是否可用,所以客户端与服务器端要通过某种标识来进行通信,从而让服务器判断请求资源是否可以缓存访问。

普通刷新会启用弱缓存,忽略强缓存。只有在地址栏或收藏夹输入网址、通过链接引用资源等情况下,浏览器才会启用强缓存,这也是为什么有时候我们更新一张图片、一个js文件,页面内容依然是旧的,但是直接浏览器访问那个图片或文件,看到的内容却是新的。
如果使用了缓存基本上是两种情况: status code: 200 ok (from cache)和 status code 304 Not Modified。
上面两种方式有什么区别呢?简单地说,第一种方式是不向浏览器发送请求,直接使用本地缓存文件。第二种方式,浏览器虽然发现了本地有该资源的缓存,但是不确定是否是最新的,于是想服务器询问,若服务器认为浏览器的缓存版本还可用,那么便会返回 304。

  • 媒体查询和动态rem
    @media screen (max-width: 300px)and() //only and or(,) not
  • 虚拟dom
  • vuex及用法
  • 委托和代理
  • 作用域链 原型 冒泡捕获
  • 继承
  • class
  • 闭包
  • this
  • 重流和重绘
  • async await
  • promise all race
  • ajax
  • cookie sessin localstorage sessionstorage indexedDB

  • vue :key原理 diff

  • base64 gzip

  • css3 h5

  • 居中方式

  • visibility元素在页面消失后,其占据的空间依旧会保留着,所以它只会导致浏览器重绘而不会重排和none元素设置为display:none后,元素在页面上将彻底消失,元素本来占有的空间就会被其他元素占有,也就是说它会导致浏览器的重排和重绘。

  • flex

  • 网页展示过程 三次握手和四次挥手

  • 算法

  • canvas svg box-shadow
    Canvas是使用JavaScript程序绘图(动态生成),SVG是使用XML文档描述来绘图。SVG是基于矢量的,所有它能够很好的处理图形大小的改变。Canvas是基于位图的图像,它不能够改变大小,只能缩放显示
    Canvas提供的功能更原始,适合像素处理,动态渲染和大数据量绘制
    SVG功能更完善,适合静态图片展示,高保真文档查看和打印的应用场景
    anvas是通过javascript来绘制2D图像的;
    Canvas是逐像素进行渲染的;

    在Canvas中一旦图形被绘制完成,它就不会得到浏览器的关注,一旦其位置发生变化,那么整个场景需要重新绘制,包括任何已被该图形覆盖了的图形。
    1_第2张图片
    微信截图_20181201172742.png

    使用场景举例
    svg
    1.静态图像
    2.高保真文档(用于展示和打印)
    canvas
    1.处理视频

    2.复杂场景、实时复杂数学动画
    3.基于图像位置的快速计算处理

  • vue 钩子通信

  • 双向绑定

  • methods和computed

  • 对象深复制

  • polyfill和bable

  • defer和async

  • v-model

  • 自动登录和登出

  • vue-router 钩子

  • 数组的各种api

  • sass grid webpack

  • HTML 语义化

  • meta viewport 是做什么用的,怎么写

  • 盒模型

  • bfc

  • 清除浮动

  • 立即执行函数

  • js

  • 宏事件和微事件 setImmediate

HTML5新特性(新增的标签, API等),如localstorage的用法以及与cookie的区别,如何理解web语义化
CSS3新特性,如动画等
CSS特性,如position的用法,如何实现居中,bootstrap源代码的理解,盒模型(W3C和IE),flex的使用

  • 如何实现懒加载(跟预加载的区别)
    REM和EM的父元素的font-size也是采用em表示,那么子元素的font-size怎么计算等。

浏览器一边下载 HTML 网页,一边开始解析。也就是说,不等到下载完,就开始解析。
解析过程中,浏览器发现

你可能感兴趣的:(1)