javascript面试题

时间:2021-04-29 12:46:15 试题 我要投稿

javascript面试题

  在各个领域,我们或多或少都会接触到试题,试题是用于考试的题目,要求按照标准回答。相信很多朋友都需要一份能切实有效地帮助到自己的试题吧?下面是小编帮大家整理的javascript面试题,希望能够帮助到大家。

  1、谈谈对于闭包的理解

  闭包就是有权访问另一个函数作用域中的变量的函数,MDN上面:闭包是一种特殊的对象,它由两部分构成:函数,以及创建该函数的环境。环境由闭包创建时再作用域中的任何局部变量组成。

  创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以延长作用域链,缓存数据

  闭包的特性:函数内再嵌套函数,内部函数可以引用外层的参数和变量,参数和变量不会被垃圾回收机制回收。

  使用闭包主要是为了设计私有的方法和变量。闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。

  vargetNum; functiongetCounter(){ varn=1; varinner=function(){ returnn++; } returninner; } getNum=getCounter(); console。log(getNum());//1 console。loga(getNum());

  2、说说你对作用域链的理解

  当查找变量的时候,会先从当前上下文的变量对象中查找,如果没有找到,就会从父级执行上下文的变量对象中查找,一直找到全局上下文的变量对象,也就是全局对象window,这样有多个执行上下文的变量对象构成的链条就叫做作用域链

  作用域链的作用是保证执行环境里有权访问的变量和函数是有序的,作用域链的变量只能向上访问,变量访问到window对象即被终止,作用域链向下访问变量是不被允许的

  简单的说,作用域就是变量域函数的可访问访问,即作用域控制着变量域函数的可见性和生命周期

  3、请解释一下什么是事件代理

  事件代理,又称之为事件委托。是JavaScript中常用绑定事件的常用技巧。"事件代理"即是把原本需要绑定的事件委托给父元素,让父元素担当事件监听的职务。事件代理代理的原理是DOM元素的事件冒泡。使用事件代理的好处是可以提高性能

  可以大量节省内存占用,减少事件注册,比如在table上代理所有td的click事件

  可以实现当新增子对象时无需再次对其绑定

  4、事件模型

  冒泡型事件:当你使用事件冒泡时,子级元素先触发,父级元素后触发。

  捕获型事件:当你使用事件捕获时,父级元素先触发,子级元素后触发。

  DOM事件流:同时支持两种事件模型:捕获型事件和冒泡型事件。

  阻止冒泡:在w3c中,使用stopPropagation()方法,在IE下这只cancelBubble=true。

  阻止捕获:阻止事件的默认行为,例如click链接后跳转。在w3c中使用PreventDefault()方法,在IE下设置。window。event。returnValue=false。

  5、什么是面向对象编程及面向过程编程,他们的.异同和优缺点

  面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个一次调用就可以了。

  面向对象是把构成问题事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为,向对象是以功能划分问题,而不是步骤。

  面向对象的基本思想是使用对象,类,继承,封装等基本盖面来进行程序设计。

  优点:

  易维护,采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非诚方便和较低成本的。

  易扩展,缩短了开发周期,开发工作的重用性,继承性高,降低重复工作量。

【javascript面试题】相关文章:

1.android面试题

2..net面试题

3.php面试题

4.Java面试题

5.软件测试面试题

6.最新c#面试题

7.最新软件测试面试题