面试总结(二)

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对象中管理;
相关文章
相关标签/搜索