闫亚兵面试题

<?xml version="1.0" encoding="UTF-8"?> html-css<![CDATA[<?xml version="1.0" encoding="UTF-8"?>

html-css
笔试:
  1.      jquery/css3的选择器
    jquery:
  1. 元素选择器:{

    KaTeX parse error: Expected 'EOF', got '&' at position 2: (&̲quot;p&quot;) 选…(“p.intro”) 选取所有 class=“intro” 的 <p> 元素。
    KaTeX parse error: Expected 'EOF', got '&' at position 2: (&̲quot;p#demo&quo…("[href]") 选取所有带有 href 属性的元素。
    KaTeX parse error: Expected 'EOF', got '&' at position 2: (&̲quot;[href=&apo…("[href!=’#’]") 选取所有带有 href 值不等于 “#” 的元素。

    KaTeX parse error: Expected 'EOF', got '&' at position 2: (&̲quot;[href=’.jpg’]") 选取所有 href 值以 “.jpg” 结尾的元素。

    }


    css3:{

    }

  2.     i++  ++i 
         简单的理解就是i++是先访问i然后再自增,而++i 则是先自增然后再访问i的值。
  3.     表格的事件代理
         利用了事件冒泡和目标元素的特性,动态创建表格
    1.    margin-top失效问题
          问题:当两个空的块级元素嵌套时,如果内部的块设置有margin-top属性,而且父元素没有下边解决方法所述的特征,那么内     部块的margin-top属性会绑架父元素(即将margin-top传递凌驾给了父元素)。
          就好比一个小兵,看到上级有漏洞,就假传圣旨,利用漏洞扩张自己的权利。只要设置父元素的border(栅栏)或者        padding(隔离墙),就能管住这个调皮的下属

         解决: 1、设置父元素或者自身的display:inline-block;
                  2、设置父元素的border:1px aqua solid;(>0)
                  3、设置父元素的padding:1px;(>0)
                  4、给父元素设置overflow:hidden;
                  5、给父元素或者自身设置position:absolute;
                  6、设置父元素非空,填充一定的内容。




  4.    pc 浏览器的兼容问题()
        解决:html  css(css3低版本不兼容   PIE.htc)  js(事件对象  组织浏览器的默认行文   事件监听等
  5.     移动端
       解决:meta标签大全
  6.   iframe
       iframe标签是框架的一种形式,也比较常用到,iframe一般用来包含别的页面,例如我们可以在我们自己    的网站页面加载别人网站或者本站其他页面的内容。iframe标签的最大作用就是让页面变得美观。iframe    标签的用法有很多,主要区别在于对iframe标签定义的形式不同

js
      1. this
          this指向: this 指的是当前对象,如果在全局范围内使用this,则指代当前页面window;如果在函数中使用                       this,则this指向根据当前函数是在什么对象上调用。我们可以使用call和apply改变函数中                             this的具体指向。
      2. 闭包? 你在哪里使用过闭包?
            答案:轮播图,双重嵌套时
      3. let  var const
          区别:1. let添加了块级作用域;
              2. let约束了变量提升
              3. let有暂时性死区
              4. let禁止重复声明变量
              5. let不会成为全局对象的属性
              6. 以上let所介绍的规则均适用于const命令,不同的是,const声明的变量不能重新赋值,也是由于这                    个规则,const变量声明时必须初始化,不能留到以后赋值
  1. ajax?
    ajax是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。
    ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
    ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换。ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。而传统的网页(不使用ajax)如果需要更新内容,必须重载整个网页面。
    优点: 1、最大的一点是页面无刷新,用户的体验非常好 
             2、使用异步方式与服务器通信,具有更加迅速的响应能力。。
             3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节                约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,                和响应对服务器造成的负担 
              4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。
              5、ajax可使因特网应用程序更小、更快,更友好
    缺点: 1、ajax不支持浏览器back按钮。
              2、安全问题 AJAX暴露了与服务器交互的细节。
              3、对搜索引擎的支持比较弱
              4、破坏了程序的异常机制。
              5、不容易调试。
  2. get /post
    区别: 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。
    get:一般用来进行查询操作,url地址有长度限制,请求的参数都暴露在url地址当中,如果传递中文参数,            需要自己进行编码操作,安全性较低,
    post:一般用来提交数据,没有数据的长度限制,提交的内容存在于http请求体中,数据不会暴露在url地址              中
  3. http/https
    区别: 1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
            2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
            3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
            4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份               认证的网络协议,比http协议安全。
  4. 本地存储  cookie
    区别: 1. cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务               器,仅在本地保存。
             2. cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。存储大小限制也不同,               cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的                 数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得                 多,可以达到5M或更大。
             3. 数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;               localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的               cookie过期时间之前一直有效,即使窗口或浏览器关闭。
             4. 作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage 在               所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。Web Storage 支持事件                 通知机制,可以将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便。
  5. 面向对象
    1. 继承  多太  封装  工厂函数  
    2. 继承有哪些方式?
      原型链继承:核心: 将父类的实例作为子类的原型
                             缺点:  父类新增原型方法/原型属性,子类都能访问到,父类一变其它的都变了
    3. 构造继承:     核心:使用父类的构造函数来增强子类实例,等于是复制父类的实例属性给子类(没用                                    到原型)
                             缺点:方法都在构造函数中定义, 只能继承父类的实例属性和方法,不能继承原型属性                                    / 方法,无法实现函数复用,每个子类都有父类实例函数的副本,影响性能

      组合继承:     核心:通过调用父类构造,继承父类的属性并保留传参的优点,然后再通过将父类实例                                    作为子类原型,实现函数复用
                             缺点:调用了两次父类构造函数,生成了两份实例(子类实例将子类原型上的那份屏蔽                                     了)

      寄生组合继承:核心:通过寄生方式,砍掉父类的实例属性,这样,在调用两次父类的构造的时候,                                        就不会初始化两次实例方法/属性,避免的组合继承的缺点
                               缺点:堪称完美,但实现较为复杂

  6. 是否使用过php/node.js/java等后台语言 
  7. 通信  webSocket
            WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议
            WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。
            在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成          了一条快速通道。两者之间就直接可以数据互相传送。
             Ajax 轮询这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请            求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资          源。
            HTML5 定义的 WebSocket 协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。
  8. h5新增了那些新的特性
    1. 标签
      video:表示一段视频并提供播放的用户界面
      audio: 表示音频
      canvas: 表示位图区域
      source: 为video和audio提供数据源
      track: 为video和audio指定字母
      svg: 定义矢量图
      code: 代码段
      figure: 和文档有关的图例
      figcaption: 图例的说明
      time: 日期和时间值
      mark: 高亮的引用文字
      datalist: 提供给其他控件的预定义选项
      keygen: 秘钥对生成器控件
      output:计算值
      progress: 进度条
      menu: 菜单
      embed: 嵌入的外部资源
      menuitem: 用户可点击的菜单项
      main, template, section, nav, aside, article, footer, header
    2. 属性
      contenteditable: 规定是否可编辑元素的内容。
      contextmenu: 指定一个元素的上下文菜单。当用户右击该元素,出现上下文菜单
      data-*: 用于存储页面的自定义数据
      draggable: 指定某个元素是否可以拖动
      dropzone: 指定是否将数据复制,移动,或链接,或删除
      hidden: hidden 属性规定对元素进行隐藏。
      spellcheck:检测元素是否拼写错误
      translate: 指定是否一个元素的值在页面载入时是否需要翻译
    3. 本地存储
    4. Canvas
      HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成.
      <canvas> 标签只是图形容器,您必须使用脚本来绘制图形。
      你可以通过多种方法使用 canvas 绘制路径,盒、圆、字符以及添加图像
  9. 前端的可视化是否接触过?
    1. D3.js   Echart.js   hchart.js
  10. 去重的方式
    1. 双重的遍历( IndexOf )
      indexOf() 方法可返回数组中某个指定的元素位置。
      该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。
                  如果在数组中没找到指定元素则返回 -1。

                  利用indexOf()方法查询遍历出的数组在新数组中是否出现,如果出现:则继续遍历数组,如未出现:则                        利用push方法添加到新数组中.
                2. 利用对象的属性唯一性
  1.     排序
    1. 快速排序
    2. 冒泡排序
    3. es6 set
    4. sort
  2.  深拷贝  和    浅拷贝 
    值得拷贝和址的传递
  3.  json/ xml
    xml:扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记          语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。            XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言
    json: JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编             写的特性。可在           不同平台之间进行数据交换。JSON采用兼容性很高的、完全独立于语言文           本格式,同时也具备类似于C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)             体系的行为。这些特性使JSON成为理想的数据交换语言。

node.js

  1.     前端的模块化
    1.  AMD  require.js
      AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。
    2.   CMD  sea.js
      SeaJS要解决的问题和requireJS一样,只不过在模块定义方式和模块加载(可以说运行、解析)时机上有所不同
    3.  Common.js
      1、CommonJs规范的出发点:JS没有模块系统、标准库较少、缺乏包管理工具;为了让JS可以在任何地方运行,以达到Java、C#、PHP这些后台语言具备开发大型应用的能力;
      1. 为什么要有模块化的概念出现
        1. 命名空间
        2. 多个模块之间的多重依赖关系
        3. 代码组织
      2. node 
        1. 内置的模块
        2. 第三方的模块
        3. 自定义模块
  2.  前端的五大异步流程工具
    1. Promise 
      从语法上讲,promise是一个对象,从它可以获取异步操作的消息;从本意上讲,它是承诺,承诺它过一段时间会给你一个结果。promise有三种状态:pending(等待态),fulfiled(成功态),rejected(失败态);状态一旦改变,就不会再变。创造promise实例后,它会立即执行。
      1. Promise.all
        Promise.all可以将多个Promise实例包装成一个新的Promise实例。同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值。
      2. Promise.race
        顾名思义,Promse.race就是赛跑的意思,意思就是说,Promise.race([p1, p2, p3])里面哪个结果获得的快,就返回那个结果,不管结果本身是成功状态还是失败状态
    2. es6 generator函数
      Generator函数是ES6引入的新型函数,用于异步编程,跟Promise对象联合使用的话会极大降低异步编程的编写难度和阅读难度
      Generator函数跟普通函数的写法有非常大的区别:
      一是,function关键字与函数名之间有一个星号;
      二是,函数体内部使用yield语句,定义不同的内部状态(yield在英语里的意思就是“产出”)
    1. node/vue   nextTick()
      nextTick是全局vue的一个函数,在vue系统中,用于处理dom更新的操作。
      如果想在DOM状态更新后做点什么,则需要用到nextTick。
    2. async 函数中   await 
      1. function aa(){console.log(‘aa’)}
      2. const async = () => {  await aa()  console.log(1)}
    3. async.js
      async模块是为了解决嵌套金字塔,和异步流程控制而生. async 函数就是 Generator 函数的语法糖。
      优点: (1)内置执行器。 Generator 函数的执行必须靠执行器,所以才有了 co 函数库,而 async 函数自带执行                         器。也就是说,async 函数的执行,与普通函数一模一样,只要一行。
                 (2)更好的语义。 async 和 await,比起星号和 yield,语义更清楚了。async 表示函数里有异步操作,                           await表示紧跟在后面的表达式需要等待结果。
                 (3)更广的适用性。 co 函数库约定,yield 命令后面只能是 Thunk 函数或 Promise 对象,而 async 函数的                     await 命令后面,可以跟 Promise 对象和原始类型的值(数值、字符串和布尔值,但这时等同于同步操                     作)。
  3. 你接触过哪些数据库  
    1. mysql  /   mongodb 
    2. express
      Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站。
      Express 框架核心特性: 可以设置中间件来响应 HTTP 请求。
                                       定义了路由表用于执行不同的 HTTP 请求动作。
                                       可以通过向模板传递参数来动态渲染 HTML 页面。
    1. mongoose
      Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具
      Mongoose是NodeJS的驱动,不能作为其他语言的驱动。
      Mongoose有两个特点:
        1、通过关系型数据库的思想来设计非关系型数据库
        2、基于mongodb驱动,简化操作
Vue 
     20.  虚拟DOM的引入?
            多次真实DOM --》 字符串拼接的方式  --.> 虚拟DOM ( diff算法 )
             虚拟的DOM的核心思想是:对复杂的文档DOM结构,提供一种方便的工具,进行最小化地DOM操作
    1.  三大框架的区别?

      不同点:
                    vue   控制器:无;过滤器 :无 ;指令:有;渲染指令: 有 ;数据绑定:双向;
                    React   控制器:无;过滤器 :无 ;指令:无;渲染指令 : 无 ;数据绑定:单向;
                    angular 控制器:有;过滤器 :有 ;指令:有;渲染指令 : 有 ;数据绑定:双向;
      相同点:
                    都是操作虚拟DOM(真实的dom,转换js对象树)

      React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站, 并于 2013年 5 月开源。React 拥有较高的性能,代码逻辑非常简单,

      它有以下的特性:
                                 1.声明式设计:React采用声明范式,可以轻松描述应用。
                                 2.高效:React通过对DOM的模拟,最大限度地减少与DOM的交互。
                                 3.灵活:React可以与已知的库或框架很好地配合。
      优点:
                      1. 速度快:在UI渲染过程中,React通过在虚拟DOM中的微操作来实现对实际DOM的局部                        更新。
                      2. 跨浏览器兼容:虚拟DOM帮助我们解决了跨浏览器问题,它为我们提供了标准化的API,                      甚至在IE8中都是没问题的。
                      3. 模块化:为你程序编写独立的模块化UI组件,这样当某个或某些组件出现问题是,可以方                      便地进行隔离。
                      4 . 单向数据流:Flux是一个用于在JavaScript应用中创建单向数据层的架构,它随着React                         视图库的开发而被Facebook概念化。
                      5. 同构、纯粹的javascript:因为搜索引擎的爬虫程序依赖的是服务端响应而不是JavaScript                      的执行,预渲染你的应用有助于搜索引擎优化。
                      6.兼容性好:比如使用RequireJS来加载和打包,而Browserify和Webpack适用于构建大型应                     用。它们使得那些艰难的任务不再让人望而生畏。
      缺点:
                      React本身只是一个V而已,并不是一个完整的框架,所以如果是大型项目想要一套完整的框                  架的话,基本都需要加上ReactRouter和Flux才能写大型应用。

      Vue是尤雨溪编写的一个构建数据驱动的Web界面的库,准确来说不是一个框架,它聚焦在V(view)视图层。

      它有以下的特性:
                                      1.轻量级的框架
                                      2.双向数据绑定
                                      3.指令
                                      4.插件化
      优点:
                 1. 简单:官方文档很清晰,比 Angular 简单易学。
                 2. 快速:异步批处理方式更新 DOM。
                 3. 组合:用解耦的、可复用的组件组合你的应用程序。
                 4. 紧凑:~18kb min+gzip,且无依赖。
                 5. 强大:表达式 无需声明依赖的可推导属性 (computed properties)。
                 6. 对模块友好:可以通过 NPM、Bower 或 Duo 安装,不强迫你所有的代码都遵循 Angular 的                   各种规定,使用场景更加灵活。
      缺点:
                 1. 新生儿:Vue.js是一个新的项目,没有angular那么成熟。
                 2. 影响度不是很大:google了一下,有关于Vue.js多样性或者说丰富性少于其他一些有名的库。
                 3. 不支持IE8

      Angular是一款优秀的前端JS框架,

      它有以下的特性:
                                       1.良好的应用程序结构
                                       2.双向数据绑定
                                       3.指令
                                       4.HTML模板
                                       5.可嵌入、注入和测试
      优点:
                 1. 模板功能强大丰富,自带了极其丰富的angular指令。
                 2. 是一个比较完善的前端框架,包含服务,模板,数据双向绑定,模块化,路由,过滤器,依                   赖注入等所有功能;
                 3. 自定义指令,自定义指令后可以在项目中多次使用。
                 4. ng模块化比较大胆的引入了Java的一些东西(依赖注入),能够很容易的写出可复用的代                     码,对于敏捷开发的团队来说非常有帮助。
                 5. angularjs是互联网巨人谷歌开发,这也意味着他有一个坚实的基础和社区支持。
      缺点:
                 1. angular 入门很容易 但深入后概念很多, 学习中较难理解.
                 2. 文档例子非常少, 官方的文档基本只写了api, 一个例子都没有, 很多时候具体怎么用都是                         google来的, 或直接问misko,angular的作者.
                 3. 对IE6/7 兼容不算特别好, 就是可以用jQuery自己手写代码解决一些.
                 4. 指令的应用的最佳实践教程少, angular其实很灵活, 如果不看一些作者的使用原则,很容易写                   出四不像的代码, 例如js中还是像jQuery的思想有很多dom操作.
                 5. DI 依赖注入 如果代码压缩需要显示声明.




  1. 三大框架的使用场景?
    angular:
    angular功能比较强大,适用在复杂、重大项目中。它有自己的一套规则,写出来的项目结构比较清晰,便于大型项目的维护迭代。
    react:
    react是一套跨平台的js框架,对比angular,react较轻量,同时,react有一个明显的特点,也是angular的“痛点”——跨平台。就移动端来说吧,angular当时出来的时候并没有把移动端考虑在内,只是后来才意识到移动端庞大的需求,所以出来了angular2.0(angular2.0说白了就是angular专门针对移动市场的一种解决方案)。react使用js去调用移动原生控件,性能比传统的hybrid app(webview加载html页面)高很多,体验也更接近于native。
    vue:
    对比其他两大框架,vue是最轻量的,所以上手比较简单。vue专注于 MVVM 模型的ViewModel层,它主要目的是想让大家可以尽可能简单地达到数据和视图的绑定。如果你的产品需求是轻量级的、开发效率快的,那就选择它吧。
  2. 响应式原理
     响应式原理 vuejs中的模型(model)和视图(view)是保持同步的,在修改数据的时候会自动更新视图,这其实依赖于Object.defineProperty方法,所以vuejs不支持IE8及以下版本,vuejs通过劫持getter/setter方法来监听数据的变化,通过getter进行依赖收集,在数据变更执行setter的时候通知视图更新。
  3. 生命周期
    beforeCreate   ,这个时候,数据还没有挂载呢,只是一个空壳,无法访问到数据和真实的dom,一般不做操作
    created           ,一般可以在这里做初始数据的获取
    beforeMount    , 一般可以在这里做初始数据的获取
    mounted         , 可以在这里操作真实dom等事情…
    beforeUpdate   , 一般不做什么事儿
    updated           , 可以操作更新后的虚拟dom
    beforeDestroy   ,一般在这里做一些善后工作,例如清除计时器、清除非指令绑定的事件等等
    destroyed         ,在这里做善后工作也可以
  4. vuex *********
    通过定义和隔离状态管理中的各种概念并强制遵守一定的规则,我们的代码将会变得更结构化且易维护。使用vuex来引入外部状态管理,将业务逻辑切分到组件外,可以避免重复的从服务端抓取数据。
    Vue组件接收交互行为,调用dispatch方法触发action相关处理,若页面状态需要改变,则调用commit方法提交mutation修改state,通过getters获取到state新值,重新渲染Vue Components,界面随之更新
  5. vue的全家桶
                 概括起来就是:、1.项目构建工具、2.路由、3.状态管理、4.http请求工具。
  6. 路由原理
  7.              通过改变浏览器地址URL,在不重新请求页面的情况下,更新页面视图
    有两种方式:
    1.一种是# hash   ,    在地址中加入#以欺骗浏览器,地址的改变是由于正在进行页内导航 
    2.一种是h5的history  ,     使用URL的Hash来模拟一个完整的URL

  8. spa 单页面应用? 
    SPA不会因为用户的操作而进行页面的重新加载或跳转,而是利用JavaScript动态的变换HTML(采用的是div切换显示和隐藏),从而实现UI与用户的交互。
    好处:
    1、由于避免了页面的重新加载,SPA可以提供较为流畅的用户体验。得益于Ajax,可以实现无跳转刷新,由于与浏览器的history机制,可以使用hash的b变化从而可以实现推动界面变化。
    2、只要使用支持HTML5和CSS3的浏览器就可以执行复杂的SPA,因此,开发人员不必为了写SPA网站而特别学习另一个开发方式,而使用者也不额外安装软件,所以,让开发SPA网页程序的入门和使用门槛降低不少。
    缺点:
    以SPA方式开发的网站不容易管理也不够安全。
    因为没了一页一页的网页给搜索引擎的爬虫来爬,所以,在搜索引擎最佳化(SEO)的工作上,需要花费额外的功夫。
    因为没有换页,需要自定义状态来取代传统网页程序以网址来做判断。
  9. 前端的版本控制工具
    1. git   svn 
    2. git的操作流程
      1 . 组长: 创建一个远程的仓库
      2. 邀请各个组员,给赋予权限
      3. 给每一个组员创建一个分支,创建好公共的分支
      4. 克隆仓库到本地,多复制一份出来(这一份作为我们分支的开发目录), 有的同学直接在仓库代码中开发,代码提交的时候,代码丢失,
      5. 首先,当我们开发完之后,在开发目录中先做好测试,然后再去提交远程分支
      6. 组长: 统管项目

  10. 你的项目开发流程
    1. 产品<–> ui <–> 前端 <–> 后台<–>测试<–>上线
  11. 你平时是如何和你的ui和后台沟通的
    1. 都可以做的,成本大
    2. 后台接口没有给你( 跨域  json  mock.js )
  12. 前端的工程化(自动化)
    1. webpack
      什么是webpack:webpack是一款模块加载兼打包工具,它可以将js、jsx、coffee、样式sass、less,图片等作为模块来使用和处理。
      优点:
      1、以commonJS的形式来书写脚本,对AMD、CMD的支持也很全面,方便旧项目的迁移
      2、能被模块化的不止是JS了。
      3、能替代部分grunt/gulp的工作,例如打包,压缩混淆,图片转base64等。
      4、扩展性强,插件机制完善,支持React热拔插

    2. gulp
      Glup侧重于前端开发的整个过程的控制管理,我们可以通过给glup配置不同的task来让glup实现不同的功能,从而构建整个前端开发流程。
    3. grunt
      简而言之,就是运行在Node.js上面的任务管理器(task runner),其可以在任何语言和项目中自动化指定的任务
React
  1.     redux
    1.   redux-thunk
       当我们需要在actionCreator中返回一个函数的时候(异步操作的时候)
    2.   redux的工作流程
      组件想要获取State, 用ActionCreator创建了一个请求交给Store,Store借助Reducer确认了该State的状态,Reducer返回给Store一个结果,Store再把这个State转给组件。
    3.  生命周期
      初始化:
      getDefaultProps: 设置默认属性
      getInitialState: 设置初始状态, 此时可以访问this.props
      componentWillMount : 即将挂载 , 此时可以修改state。
      render : 渲染,就是挂载, 此时就不能更改state了。
      componentDidMount : 挂载完成
      更新:
      compoentwillReceiveProps: 组件初始化时不调用,组件接受新的props时调用。
      shouldCompnetUpdate: 是否应该进行更新操作
      componentWillUpdate: 即将进行更新操作, 此时可以修改state
      render : 重新渲染
      componentDidUpdate: 更新完成, 此时可以获取dom节点。
      销毁:
      componentWillUnmount: 组件将要卸载时调用,一些事件监听和定时器需要在此时清除。
  2.  常见的ui组件库/ ui库
    1. sui.js
    2. element ui (vue)
    3. muse ui  (vue)
    4. mini ui
    5. framework7 vue
    6. ant desigin  (蚂蚁金服ui库)
  3. rem 和弹性盒子
  4. 请问你使用过哪些 cs吗?
    1. Client Serve  客服端服务器  wamp  /  xmapp  / phpstudy …
  5. 后端测试工具
  6. 你在项目中遇到过什么问题?是如何解决的?
    1. vue项目的时候,哪些地方卡住了?
    2. react项目中  , 项目开发流程(日志文件) 问题  解决方案


]]>20181121T114910Z20181122T110758Z闫亚兵desktop.win http://www.w3school.com.cn/jquery/jquery_selectors.aspyinxiang.win32

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值