欢聚时代一面

  • 做自我介绍
  • 介绍下自己的项目
  • 实习主要是做什么的
  • Http 是什么
    • 无状态连接协议基于 TCP/IP 的封装,应用层协议,它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用 80 端口。
    • MDN:https://developer.mozilla.org/zh-CN/docs/Web/HTTP
  • Tcp 和 Udp 有什么区别
    • 基于连接与无连接
    • TCP 要求系统资源较多,UDP 较少;
    • UDP 程序结构较简单
    • 流模式(TCP)与数据报模式(UDP);
    • TCP 保证数据正确性,UDP 可能丢包
    • TCP 保证数据顺序,UDP 不保证
    • 具体区别:http://blog.csdn.net/lining/article/details/52117463
  • websocket 是基于什么
    • TCP/IP 协议
  • cookie 的读取和改写(能不能由;)
    • document.cookie 来读取 cookie(没有设置 HTTPonly 的情况下)
    • 如果有个重复的前缀,要把整个词写完整;
    • 如果要用;,请使用编码
    • cookie 的读写:http://www.jb51.net/article/64330.htm
  • encodeURIComponent 和 encodeURI 的区别
    • encodeURI()不会对本身属于 URI 的特殊字符进行编码,例如冒号、正斜杠、问号和井字号;而
    • encodeURIComponent()则会对它发现的任何非标准字符进行编码。来看下面的例子:
      1
      2
      3
      var test1="http://www.wljcz.com/My first/";
      var nn=encodeURI(test1); // http://www.wljcz.com/My%20first/
      var bb=encodeURIComponent(test1); // http%3A%2F%2Fwww.wljcz.com%2FMy%20first%2F
  • cookie 和 localstorage 的区别
    • cookie 是服务器返回给浏览器的用户标识,同源请求随请求发送,有 path,domain,max-age 等属性
    • HTTP 请求中的 Cookie 是明文传递,安全性成问题。(HTTPS 不会)
    • 缺点:
    • Cookie 会被附加到每个 HTTP 请求中,无形增加了流量
    • Cookie 大小限制在 4KB,对于复杂的存储需求是不够用的
    • localstorage 是 HTML5 新增的一种储存方式,保存在本地,不会随着浏览器的关闭而被销毁
    • 大小一般在 4MB 左右,不会随 http 请求发送
    • cookie: https://zh.wikipedia.org/wiki/Cookie
    • localstorage: https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Storage_API
  • CSS 盒子模型
    • IE 6 以下 width=width+padding+border
    • IE8 以上可以通过 box-sizing 来控制盒模型
    • W3C 标准的盒子模型 width = width;
  • CSS 怎么实现缓动效果
    • 设置 transition,通过不同的 cubic-bezier 来实现不同的缓动效果
  • 赛贝尔曲线是什么
  • animation 和 transition 的区别
    • transition 属性是一个简单的动画属性,如果在 transition 的动画当中,属性值有了新的变化,则会中断当前的动画执行,并将中断时的属性值提供给新的动画作为起始值来计算新的动画效果。
    • animation 属性是 transition 属性的扩展,keyframes 提供更多的控制,尤其是时间轴的控制可以通过控制各个时间点的状态来实现帧的效果,animation-fill-mode,这个属性标示是以(from/0%)指定的样式 还是以(to/100%)指定的样式为动画完成之后的样式。这个很方便我们控制动画的结尾样式,保证动画的整体连贯。
  • base64 是什么
    • BASE64 是一种编码方式,通常用于把二进制数据编码为可写的字符形式的数据。
    • 需要明文保存二进制数据时,可以将不可打印的二进制数据经过 Base64 编码转成可打印的字符串。
    • Mozilla Thunderbird 和 Evolution 用 Base64 来保密电子邮件密码
    • Base64 也会经常用作一个简单的“加密”来保护某些数据,而真正的加密通常都比较繁琐。
    • 垃圾讯息传播者用 Base64 来避过反垃圾邮件工具,因为那些工具通常都不会翻译 Base64 的讯息。
    • 在 LDIF 档案,Base64 用作编码字串。
    • http://blog.csdn.net/xuefeng0707/article/details/19845111
  • 控制动画具体到每一帧
    • RequestAnimationFrame
  • utf-8,utf-16,unicode
    • Unicode 定义了所有可以用来表示字符的数值集合(称之为 Code Point)。UTF-8 和 UTF-16 等 UTF 标准定义了这些数值和字符的映射关系。
    • UTF-8 编码格式下,一个汉字需要至少 3 个 char 才能表示。
    • http://www.cnblogs.com/kingcat/archive/2012/10/16/2726334.html
  • Vue 中事件绑定的原理
    • defineProperty()截止 set 来绑定
  • Vue 中 watch 和 computed 的区别
    • 你可以像绑定普通属性一样在模板中绑定计算属性。当子属性发生改变时所有依赖于子属性的绑定的计算属性也会更新。而且最妙的是我们已经以声明的方式创建了这种依赖关系:计算属性的 getter 函数是没有连带影响 (side effect),这使得它易于测试和推理。
    • Vue 通过 watch 选项提供一个更通用的方法,来响应数据的变化。当你想要在数据变化响应时,执行异步操作或开销较大的操作,这是很有用的。
    • https://cn.vuejs.org/v2/guide/computed.html#计算属性
  • Vue 中父子组件的通信
    • 通过子组件 emit 自定义事件,在父组件处子组件上监听@事件是否触发来传递信息
  • 如果不用 Vuex 怎么简化通信过程
    • 用 es6 的模块设计来抽象出一个 modal 层,不能是 commonjs 因为 commonJS 返回的是模块的拷贝,而 es6 的模块是模块的引用,才能实现数据共享
  • 如果 data 中的一个对象多了一个属性,怎么让他响应事件
  • Vue 中的 this.$nextTick 是什么
    • Vue 实现响应式并不是数据发生变化之后 DOM 立即变化,而是按一定的策略进行 DOM 的更新。
    • $nextTick 是在下次 DOM 更新循环结束之后执行延迟回调,在修改数据之后使用 $nextTick,则可以在回调中获取更新后的 DOM
    • 比如说 iscroll 计算高度,需要在数据加载之后重新计算,即写在 this.$nextTick 里面
  • 了解 Promise 怎么实现链式调用
    • 把 promise 实例当作返回值 return
  • 什么是跨域
    • 协议,域名,端口号有一个不同的就是跨域
  • 为什么有时候使用 XML 而不用 JSON
  • 了解 WebRTC 吗?
    • WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术
    • WebRTC 实现了基于网页的视频会议,标准是 WHATWG 协议,目的是通过浏览器提供简单的 javascript 就可以达到实时通讯(Real-Time Communications (RTC))能力。
    • https://developer.mozilla.org/zh-CN/docs/WebRTC
  • 你有什么问题吗?
    • 前端工程化构建的实现,用的 gitlab 和 git push to svn