1、jQuery 1.$(document).ready()是个什么函数?为何要用它? 当DOM彻底加载,jQuery容许你执行代码,使用$(document).ready()的最大好处在于它使用于全部 浏览器,jQuery解决了跨浏览器的难题 2.JavaScript window.onload 事件和 jQuery ready 函数有何不一样? (1)前者须要等待dom被建立,还要等待包括大型图片、音频、视频在内的全部外部资源都彻底加载,若是 加载图片和媒体内容花费了大量时间,用户就会感觉到定义在window.onload事件上的代码执行时有明显 延迟。 (2)后者只须要对dom树等待,而无需对图像或外部资源加载等待,从而执行起来更快; 另外一个优点是能够在网页中屡次使用,浏览器会按他们在html页面里出现的顺序执行它们 3.jQuery里的each()是什么函数?你是如何使用它的? each()函数容许遍历一个元素集合,能够传一个函数给each()方法,被调用的jQuery对象会在其每一 个元素上执行传入的函数。 找出全部的选中项,而后咱们在alert框中用each()方法来一个个打印它们 $('[name=NameOfSelectedTag]:selected').each(function(selected){ alert($(selected).text()); }); 4.$(this) 和 this 关键字在 jQuery 中有何不一样? $(this)返回一个jQuery对象,你能够对它调用多个jQuery方法,好比用text()获取文本,用val()获取值等 this表明当前元素,它是js关键词中的一个,表示上下文中的当前DOM元素 5.jQuery.get() 和 jQuery.ajax() 方法之间的区别是什么? get()方法是一个只获取一些数据的专门化方法 ajax()方法更强大,更具可配置性,让你能够指定等待多久,以及如何处理错误 6.Jquery 与 jQuery UI 有啥区别? *jQuery 是一个 js 库,主要提供的功能是选择器,属性修改和事件绑定等等。 *jQuery UI 则是在 jQuery 的基础上,利用 jQuery 的扩展性,设计的插件。 提供了一些经常使用的界面元素,诸如对话框、拖动行为、改变大小行为等等 7.jQuery 和 Zepto 的区别?各自的使用场景? (1)jQuery 主要用于 pc 端,固然有对应的 jQuerymobile 用于移动端 (2)zepto 比 jQuery 更 加小巧,主要用于移动端 (3)jquer mobile 相对于 zepto 功能强大,可是体积也很庞大,zepto 很是的轻量2、ES6知识点 1.箭头函数使用须要注意的地方 当要求动态上下文的时候,就不能使用箭头函数,也就是this的固定化 (1)在使用=>定义函数的时候,this的指向是定义时所在的对象,而不是使用时所在的对象 (2)不可以用做构造函数,也就是说不能使用new命令 (3)不可以使用arguments对象 (4)不能使用yield命令 如何理解块级做用域 (1)在一个函数内部function(){} (2)在一个代码块内部 特色: (1)不须要function关键字来建立函数 (2)省略return关键字 (3)继承当前上下文的 this 关键字 2.let和const let是更完美的var,不是全局变量,具备块级函数做用域,大多数状况不会发生变量提示 const定义常量值,不可以从新赋值,若是值是一个对象,能够改变对象里边的属性值 let:不存在变量提高、暂时性死区、不容许重复声明、块级做用域 3.结构赋值 (1)左右两边结构必须同样; (2)右边必须是个合法的值; (3)声明和赋值不能分开(必须在一句话里完成); 4.扩展运算符 对象中的扩展运算符(...)用于取出参数对象中的全部可遍历属性,拷贝到当前对象之中 5.promise对象 含义:promise是异步编程的一种解决方案,比传统的解决方案--回调函数和事件更强大更合理。 promise对象两个特色: (1)对象的状态不受外界影响。三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败) (2)一旦状态改变,就不会再变,任什么时候候均可以获得这个结果 优势: (1)将异步操做以同步操做的流程表达出来,避免了层层嵌套的回调函数 (2)Promise对象提供统一的接口,使得控制异步操做更加容易。 缺点: (1)没法取消Promise,一旦新建它就会当即执行,没法中途取消 (2)若是不设置回调函数,Promise内部抛出的错误,不会反应到外部 (3)当处于pending状态时,没法得知目前进展到哪个阶段(刚刚开始仍是即将完成) 基本用法: Promise构造函数接受一个函数做为参数,该函数的两个参数分别是resolve和reject。 const promise = new Promise(function(resolve, reject) { // ... some code if (/* 异步操做成功 */){ resolve(value); } else { reject(error); } }); Promise实例生成之后,能够用then方法分别指定resolved状态和rejected状态的回调函数 promise.then(function (value) { // success }, function (value) { // failure }) Promise.prototype.catch方法是.then(null, rejection)或.then(undefined, rejection)的别名,用于指定发生错误时的回调函数。 ***.jquery的ajax返回的是deferred对象,经过promise的resolve()方法将其转换为promise对象。 6.set数据结构 es6方法,Set自己是一个构造函数,它相似于数组,可是成员值都是惟一的。 const set = new Set([1,2,3,4,4]) console.log([...set] )// [1,2,3,4] console.log(Array.from(new Set([2,3,3,5,6]))); //[2,3,5,6] 7.map, filter, reduce 各自有什么做用? (1)map 做用是生成一个新数组,遍历原数组,将每一个元素拿出来作一些变换而后放入到新的数组中。 (2)filter 的做用也是生成一个新数组,在遍历数组的时候将返回值为 true 的元素放入新数组,咱们能够利用这个函数删除一些不须要的元素 (3)reduce 能够将数组中的元素经过回调函数最终转换为一个值。3、【简单理解】gulp和webpack的区别 安装 gulp 命令行工具:npm install --global gulp-cli gulp:能够进行js,html,css,img的压缩打包,是自动化构建工具,能够将多个js文件或是css压缩成一个文件,而且能够压缩为一行,以此来减小文件体积, 加快请求速度和减小请求次数;而且gulp有task定义处理事务,从而构建总体流程,它是基于流的自动化构建工具。 Webpack:是前端构建工具,实现了模块化开发和文件处理。他的思想就是“万物皆为模块”,它可以将各个模块进行按需加载,不会致使加载了无用或冗余的代码。4、vue和react的各自优点和类似点 1.Vue的优点是: 模板和渲染函数的弹性选择 简单的语法和项目配置 更快的渲染速度和更小的体积 更加适合小型项目 2.React的优点是: 更适合大型应用和更好的可测试性 Web端和移动端原生APP通吃 更大的生态系统,更多的支持和好用的工具 比较适合中大型项目 3.React和Vue类似之处: 用虚拟DOM实现快速渲染 轻量级 响应式组件 服务端渲染 集成路由工具,打包工具,状态管理工具的难度低 优秀的支持和社区 4.不一样点: (1).React严格上只针对MVC的view层,Vue则是MVVM模式 (2).virtual DOM不同,vue会跟踪每个组件的依赖关系,不须要从新渲染整个组件树. 而对于React而言,每当应用的状态被改变时,所有组件都会从新渲染,因此react中会须要shouldComponentUpdate这个生命周期函数方法来进行控制 (3).组件写法不同, React推荐的作法是 JSX + inline style, 也就是把HTML和CSS全都写进JavaScript了,即'all in js'; Vue推荐的作法是webpack+vue-loader的单文件组件格式,即html,css,jd写在同一个文件; (4).数据绑定: vue实现了数据的双向绑定,react数据流动是单向的 (5).state对象在react应用中不可变的,须要使用setState方法更新状态; 在vue中,state对象不是必须的,数据由data属性在vue对象中管理;