• 沉默


    #### koa的源码是面试必须问的,因为太简单了。
     
    #### 9月16日的计划。
    复习webpack课程和promise和node。
    和第六期的课程。
    牛客网的题。
    掘金。优秀博客。
     搞清楚如何发一个npm的包和@aaa域名下的包。不同的源下的包发哪里去了哈。
    jenkins的  devOps。
    大师分享的ppt.git reset 之后发生了什么。
    =================
    重要的往前拓展,不重要的不属于常人。
    前端生态圈发展的非常好了,很多东西很完善,一般的开发者都可以搭建一套合理的开发环境。
    ☀AMD 和 CMD 的区别有哪些?☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀
    ☀webpack相关的☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀
    ##### webpack 多页面打包方式。
    ##### webpack 优化。
    ##### webpack 插件和loader区别和联系。
    ##### webpack 打包用到的哪些插件。
    ##### 全部打包和部分打包。
    === webpack,parcel
    1 作用。
    2 构成。
    3 如何理解0配置的。
    parcel的优点:
    
    极速打包时间   
    将你所有的资源打包 
    自动转换   
    零配置代码     
    自动热加载   
    友好的错误日志
    
    • Parcel能做到无配置完成以上项目构建要求;
    • Parcel内置了常见场景的构建方案及其依赖,无需再安装各种依赖;
    • Parcel能以HTML为入口,自动检测和打包依赖资源;
    • Parcel默认支持模块热替换,真正的开箱即用; 
     
    parcel的缺点: (1) 生态还不是和完善,插件什么的不是很晚上。 (2) 不太适合大项目。 (3) 不支持SourceMap (4) 不支持剔除无效代码(TreeShaking) (5) 一些依赖会让Parcel出错 (6) 不灵活的配置 无法控制对部分文件的特殊处理,以实现诸如按需加载这样的需求; 无法控制输出文件名的Hash值和名称; 无法控制构建输出目录结构; 无法映射路径以缩短导入语句; HTTP开发服务器不支持HistoryApi;

      

      
    ☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀
    ##### npm包管理的理解。 Yarn.
    npm 常用命令详解
    npm view jquery versions
    npm view jquery version
    npm list

    npm 是如何解决不同的包依赖的版本不同的。

    flat所有的包。不同版本就安装不同的版本。然后软链接过去。 

    ☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀
    #####  vue express ,koa.
    #### koa
    ##### nodejs中间件。
    ##### ssh 渲染页面的方式。nuxt.js egg.js

    ##### 有时间了解下这个  nodemon --inspect  包。

    ##### 你用过或者了解的node包有哪些。

    ☀http☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀

    babel 

    关于babel  https://www.jianshu.com/p/0dc3bddb6da8

    ☀http☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀
    ##### http 请求的方式。
    #####  跨域。
    ##### html5   window.postmessage
    ##### http的字段协议,表单提交的方式
    ##### xss csrf
    ##### http https的区别和联系。
    ### https:  利用对称加密和非对称加密。
    #### 过程: 用户aaa访问某网站xxx
    1. aaa发起请求到xxx网站。
    2. xxx返回了自己的公钥ggg和一些信息。
    3. aaa拿到这些信息去Ac权威机构证明一下(后边讲这个不被窃取的原理,这里其实是本地校验并未去ca机构认证,点下边的链接)。
    4. Ac告诉aaa这个公钥和信息对得上,是正确的。
    5. aaa自己生成一个私钥sss,然后用这个公钥ggg加密这个私钥发给xxx.
    6. 只有xxx的私钥可以解开这个公钥ggg的信息获取到这个私钥sss。
    7. 然后aaa和xxx之间的联系就是用这个私钥sss加密.
    
    #### 分析 如果aaa和xxx之间存在代理服务器ttt,如果保证ttt解密不了这些数据。
    1. aaa用xxx的公钥ggg加密私钥sss,这个信息只有xxx网站自己的私钥可以解密。即使ttt获取到了,因为不知道ggg对应的私钥无法解密。所以私钥ggg永远无法获取到sss,永远不知道他们之间在说什么。
    
    #### 分析 代理服务器ttt为什么不能在aaa获取证书ggg和aaa从Ac求证的过程中做手脚呢。
    1. Ac的私钥浏览器都有内置的。利用Ac加密的信息只有Ac的公钥可以解密。这样ttt永远不知道用户aaa在和ac之间传递的什么信息。
    2. 而当Ac浏览器返回信息ok,ok的时候,虽然代理服务器ttt知道说的ok但是永远不知道在说什么是ok的。
    

    HTTPS 客户端验证 服务端证书流程 https://www.jianshu.com/p/0d59d2216c64

    自己搭建一个https服务器,和ssl四次握手的过程 https://www.cnblogs.com/diantong/p/11359424.html

    ##### https的证书自己怎么去搭建。
    ☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀
    ### mvc mvp mvvm
    ###mvc 
    Model: 模型(用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法)
    View: 视图(渲染页面)
    Controller: 控制器(M和V之间的连接器,用于控制应用程序的流程,及页面的业务逻辑)
    === 耦合性低,重用性高,生命周期成本低,可维护性高,部署快
    
    ###mvp
    Presenter
    View 与 Model 不通信,都通过 Presenter 传递。Presenter完全把Model和View进行了分离,主要的程序逻辑在Presenter里实现。
    在MVP中,View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部。 
    优点: (1)可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部;(2)可以脱离用户接口来测试这些逻辑(单元测试)。
    
    ###mvvm
    MVVM是Model-View-ViewModel的简写。
    MVVM模式其实是MV模式与WPF结合的应用方式时发展演变过来的一种新型架构模式。
    与Mvp的区别是,采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。
    ###### angualr react vue 三大框架的对比。
    0. 三个框架的对比。

    #### vue 渐进式的前端mvvm框架。核心。双向绑定,虚拟dom,diff比较更新,高效。容易与其他框架结合。中文生态圈很好。轻量高效。免费开源。vue的组件三大核心,属性事件插槽。

    2014年2月开源。
    渐进式:易上手,灵活。
    核心库:vue vue-router vuex vue-cli
    生态圈的库: element axios nuxt.js

    #### react facebook公司2013年推出开源库。现在到了react ,16.8.6版本了吧。核心,虚拟dom,mvvm双向绑定,单向数据流,组件化开发。
    核心库. react react-dom redux
    生态的库 React-Bootstrap Ant-design SemanticUI next.js

    #### angular 2009年和node一起出现的。
    Angular 1 是指 AngularJS,典型的 MVC 架构 ,Angular 2 是面向 mobile app 的架构,为了达到APP 原生的效果, Angular 2 特有引入了 NativeScript 技术。Angular 2 解决了 mobile app 跨平台的问题.(ios,android).
    angular2也可以说是mvc,或者mvvm框架。基于typescript,angular4比angular2更快,基于component,推崇directive,pipe, 依赖注入。


    核心库: @angular/core,@angular/common,@angular/forms,@angular/router
    生态库: rxjs,ng-zorro,ng-alain

    1.  数据流 你如何理解单向数据和双向数据流在三大框架中是如何体现的。
    angular    如果父给子传了一个指针对象。父改变指针对象,父和子的dom都会改变。如果子改变指针对象的某一个属性,子和父的dom都会改变。子改变指针对象(引用修改),子的dom会改变,父的dom不会。Input只能检测到指针对象引用的改变。 
    
    react 如果父给子传了一个指针对象。父改变指针对象,父与子的dom都会改变。子无法修改父传给子的state。子只能通过emit高速父修改。
    vue 如果父给子传了一个指针对象。父改变指针对象,父与子的dom都会改变。如果子改变指针对象的某一个属性,子和父的dom都会改变。子改变指针对象(引用修改),那么会报错。


    1.5  Vue与React的区别

    对已经了解的内容,做几点介绍,并不全面,后期会不断更新~

    React与Vue都是组件化的开发框架,整体功能类似。
    一、数据处理模式(单项 or 双向):
    React推崇单项数据流的处理模式,数据不可以直接改变,每次改变数据需通过setstate返回新的数据。react的dom变化,必须通过事件返回给数据,而vue则不需要通过事件,直接就改变了。
    Vue推崇双向数据流的处理模式,是响应式,可以双向绑定。

    二、写法(函数式 or 声明式):
    React3.0之前是类式的组件化写法,3.0新版本之后是函数式的组件化写法(组件很多,api很少)
    Vue是声明式的组件写法(相比React来说,api很多)

    三、开发方式(全程js or 组合到一个页面当中):
    React全程都是js,用js老生成html,因此有了JSX
    Vue是将html、css、js放在一个文件当中,开发出单页面应用程序

    2 三个的数据状态的对比。vuex react-redux service

    https://juejin.im/post/5c18de8ef265da616413f332#heading-5

    #### 命令式编程,声明式编程和函数式编程

    命令式编程
    注重过程,告诉计算机一步步一步步的如何去做。
    声明式编程
    注重结果,只需要关注开发需要关注的事情,对于开发不需要的框架帮我们完成比如map。我们只关心遍历的时候需要做什么,置于遍历的过程我们并不关心。
    函数式编程 函数式编程和声明式编程是有所关联的,因为他们思想是一致的:即只关注做什么而不是怎么做。但函数式编程不仅仅局限于声明式编程。 函数式编程最重要的特点是“函数第一位”,即函数可以出现在任何地方,比如你可以把函数作为参数传递给另一个函数,不仅如此你还可以将函数作为返回值。大部分常见的编程语言一半都已经提供了对这种编程方式的支持,比如 JavaScript,再有 C# 中的 LINQ 和 Java 中的 Lambda 和闭包的概念。 js 的箭头函数。map函数。纯函数和不纯函数。函数可以作为参数传递。


    ☀angular☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀
    #####  猴子补丁。
    一开始加载的时候,替换掉原来的方法或者模块。
    ☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀
    #####  浏览器,兼容。
    ##### 无头浏览器的调用。兼容性。
    ##### 路由切换的问题。 History模式。和hash 模式。
     
     
     
     #### js  序列化解决的问题
     
    ##### js map的问题。
    ##### css js中的路径如何配置为绝对路径。
     
    ##### 模版引擎pug,ejs.jade有什么区别和联系。
    #### ejs
    1.转义输出  <%= 变量名 %>
    2.js代码 <% Javascript代码 %>
    3.不转义输出 <%- 变量名%>
    4.使用include引入外部的文件 <% include 文件的地址 %>
    
    #### jade 格式化。
    #### pug 使用语法   https://www.jianshu.com/p/e040cebad751
    ##### 你知道的异步方式。
    ##### vue 迷你版本。 https://github.com/lihongxun945/tiny-vue
    ##### 树组件的优化。
    #####  webwork
     
    ##### 如何写测试用例。
     
     
    ==== 混合框架开发流程
    React native,wexx,fluttwr
     
    === 代码检测的cli.
     
    === 安全
    1 nginx配置。无代理。
    2 自动上线+自动部署的工具。
     
    ===多页应用 开发带来的好处。
    原来的多页也用,测试效率低,模块测试,自动化测试。

      多页应用,无页面切换效果,而现在可以添加过场动画。

      多页应用,浪费服务器资源,而现在可以减少http请求。

    === 多页应用带来的不好的原因。 

    使用了高级的东西,兼容性不好,seo不友好。
    场景要求,开发的自动度降低。
    黑盒开发。
    框架本身也会有学习成本。

    === 检测代码的commit

    1. 检测commit 的描述

    "commitizen"

    "config": {
        "commitizen": {
             "path": "./node_modules/cz-conventional-changelog"
        }
    },


    "gitHooks": {
         "commit-msg": "node ./verifyCommitMsg.js"
    },

    husky

    commit的时候会首先执行行precommit;

      {

         "precommit": "lint-staged"
      },

    "lint-staged": {
        "src/**/*.{json,css,scss}": [
        "prettier --write",
        "git add"
    ],
    "src/**/*.js": [
       "eslint --fix",
       "git add"
    ],
    "webpack/**/*.js": [
       "eslint --fix",
        "git add"
       ]
    },

     
     
     
    ===============
    面试题的收集
     
    ##### 各种源码理解分析
    vue-router

     ##### JSON.stringifyJSON.parse的弊端。

    https://www.jianshu.com/p/b084dfaad501
    Ps: 什么叫循环引用,如何解决循环引用的问题。。
     

      

    基本翻译
    abbr. 超文本传输协议安全(Hyper Text Transfer Protocol)
    网络释义
    HTTPS: 安全超文本传输协议(Hypertext Transfer Protocol Secure)
    android https: 通信安全

  • 相关阅读:
    Fluent 18.0新功能之:其他
    【小白的CFD之旅】小结及预告
    【小白的CFD之旅】19 来自计算网格的困惑
    【小白的CFD之旅】18 控制方程基础
    【小白的CFD之旅】23 串行与并行
    【小白的CFD之旅】22 好网格与坏网格
    JS ES6的变量的结构赋值
    JS中some()和every()和join()和concat()和pop(),push(),shift(),unshfit()和map()和filter()
    JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性)
    javascript中this的指向问题
  • 原文地址:https://www.cnblogs.com/coding4/p/10970423.html
Copyright © 2020-2023  润新知