zoukankan      html  css  js  c++  java
  • web面试(一)

    • 整理面试知识,学习笔记
    • 认识自身不足,弥补缺陷

    1. webpack按需加载原理

    2. react和jquery的差异

    • React.js的提供了一整套Virtual DOM,所有的操作都在这个Virtual DOM上,只有当事件发生的时候, state 才发生改变,之后,React自动调用 render() 来更新UI

      • React中把各个UI组件独立出来,有利于提高UI组件的复用率同时降低各个UI组件的耦合
    • jQuery只是一个工具库,基本思路是: 用选择器选择DOM元素,并对DOM元素监听,然后在事件监听函数里进行相应的处理

    3. TCP三次握手

    • 三次握手的目的是连接服务器指定端口建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。

      • [x] 第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。

      • [x] 第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。

      • [x] 第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。

    • 形象比喻(引用自)

      两个素未谋面的人遇见了,一个人(client端)想认识对方(server端)..于是那个人(client端)主动向对方(server端)挥手(意味着接下来有握手的冲动,即是带SYN标志的TCP报文到服务器),而对方(server端)也向那个人(client端)挥手(对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯),这时候对方(server端)是否愿意握那个人(client端)的手(取决于防火墙等定义的规则决定),那个人(client端)确认了对方(server端)愿意,才能走过去握手(客户必须再次回应服务段一个ACK报文),这样就达到三次握手(建立连接)的原理;

    TCP

    4. MVVM (参考链接)

    5. V8渲染引擎怎么解析js

    • 简单来说,JavaScript 引擎会加载你的源代码,把它分解成字符串(又叫做分词),再 把这些字符串转换 成编译器可以理解的字节码,然后执行这些字节码。

    • Google 的 V8 引擎 是用 C++ 编写的,它也能够编译并执行 JavaScript 源代码、处理内存分配和垃圾回收。它被设计成由两个编译器组成,可以把源码直接编译成机器码

      • [x] Full-codegen:输出未优化代码的快速编译器
      • [x] Crankshaft: 输出执行效率高、优化过的代码的慢速编译器

    6. 移动端性能优化

    7. 并发请求,合并请求

    8. redux实现原理

    9. webpack打包机制

    10. 了解cookie和session工作机制

    HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。

    • Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。

    Cookie: 中文译为小甜饼,由Netscape公司发明,是最常用的跟踪用户会话的方式。Cookies是一种由服务器发送给客户端的片段信息,存储在客户端的内存或者硬盘上,在客户随后对该服务器的请求中发回它。其实主要就是把服务器为客户端分配的session ID保存在Cookies中,每次发送请求时把Cookies附加到请求对象中一起发过去,服务器得到这个唯一的session ID,从而可以唯一的标识一个客户端

    Cookie cookie = new Cookie("username","helloweenvsfei");   // 新建Cookie
    cookie.setMaxAge(Integer.MAX_VALUE);           // 设置生命周期为MAX_VALUE
    response.addCookie(cookie);                    // 输出到客户端
    //如果maxAge属性为正数,则表示该Cookie会在maxAge秒之后自动失效。浏览器会将maxAge为正数的Cookie持久化,即写到对应的Cookie文件中。无论客户关闭了浏览器还是电脑,只要还在maxAge秒之前,登录网站时该Cookie仍然有效。下面代码中的Cookie信息将永远有效
    

    11. 原生js实现用户登录验证

    12. 学习webpack

  • 相关阅读:
    angular 组件间数据共享
    Linux 常用命令
    angular 子路由跳转出现Navigation triggered outside Angular zone, did you forget to call ‘ngZone.run() 的问题修复
    angular :ngIf 的else用法
    利用 filter 来去重
    webpack打包时删除console.log,和debugger
    git忽略而不提交文件的3种情形
    jenkins 构建日程表配置
    vue之多页面的开发
    vue-cli3使用jq
  • 原文地址:https://www.cnblogs.com/Lewiskycc/p/7026961.html
Copyright © 2011-2022 走看看