面试总结(二)

帅比萌擦擦* 提交于 2019-11-28 01:15:26
一、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 非常的轻量二、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 可以将数组中的元素通过回调函数最终转换为一个值。三、【简单理解】gulp和webpack的区别    安装 gulp 命令行工具:npm install --global gulp-cli    gulp:可以进行js,html,css,img的压缩打包,是自动化构建工具,可以将多个js文件或是css压缩成一个文件,并且可以压缩为一行,以此来减少文件体积,          加快请求速度和减少请求次数;并且gulp有task定义处理事务,从而构建整体流程,它是基于流的自动化构建工具。    Webpack:是前端构建工具,实现了模块化开发和文件处理。他的思想就是“万物皆为模块”,它能够将各个模块进行按需加载,不会导致加载了无用或冗余的代码。四、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对象中管理;
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!