目录

jQuery访谈问题(jQuery Interview Questions)

亲爱的读者们,这些jQuery Interview Questions专门设计用于让您熟悉在面试jQuery时可能遇到的问题的本质。 根据我的经验,很好的面试官在你的面试中几乎不打算问任何特定的问题,通常问题从这个主题的一些基本概念开始,然后他们继续基于进一步的讨论和你回答的问题 -

jQuery是一个快速而简洁的JavaScript库,由John Resig在2006年创建,有一个很好的座右铭 - 写得少,做得更多。 jQuery简化了HTML文档遍历,事件处理,动画和Ajax交互,以实现快速Web开发。 jQuery是一个JavaScript工具包,旨在通过编写更少的代码来简化各种任务。

以下是jQuery支持的重要核心功能列表 -

  • DOM manipulation - 通过使用名为Sizzle的跨浏览器开源选择器引擎,jQuery可以轻松选择DOM元素,遍历它们并修改其内容。

  • Event handling - jQuery提供了一种捕获各种事件的优雅方式,例如用户单击链接,而不需要使用事件处理程序来混淆HTML代码本身。

  • AJAX Support - jQuery可以帮助您使用AJAX技术开发响应迅速且功能丰富的站点。

  • Animations - jQuery带有大量内置动画效果,您可以在您的网站中使用它们。

  • Lightweight - jQuery是非常轻量级的库 - 大小约为19KB(Minified和gzipped)。

  • Cross Browser Support - jQuery具有跨浏览器支持,适用于IE 6.0 +,FF 2.0 +,Safari 3.0 +,Chrome和Opera 9.0+。

  • Latest Technology - jQuery支持CSS3选择器和基本XPath语法。

使用$(document).ready()函数。 在加载DOM之后和加载页面内容之前,其中的所有内容都将加载。

JavaScript非常支持Object概念。 您可以使用对象文字创建对象,如下所示 -

var emp = {
   name: "Zara",
   age: 10
};

您可以使用点表示法编写和读取对象的属性,如下所示 -

// Getting object properties
emp.name  // ==> Zara
emp.age   // ==> 10
// Setting object properties
emp.name = "Daisy"  // <== Daisy
emp.age  =  20      // <== 20

您可以使用数组文字定义数组,如下所示 -

var x = [];
var y = [1, 2, 3, 4, 5];

数组具有可用于迭代的length属性。 我们可以读取数组的元素如下 -

var x = [1, 2, 3, 4, 5];
for (var i = 0; i < x.length; i++) {
   // Do something with x[i]
}

命名函数在定义时具有名称。 可以使用function关键字定义命名函数,如下所示 -

function named(){
   // do some stuff here
}

JavaScript中的函数可以是命名的,也可以是匿名的。

匿名函数可以与普通函数类似的方式定义,但它没有任何名称。

是! 可以将匿名函数分配给变量。

是! 匿名函数可以作为参数传递给另一个函数。

JavaScript变量参数表示传递给函数的参数。

使用typeof运算符,我们可以获得传递给函数的参数类型。 例如 -

function func(x){
   console.log(typeof x, arguments.length);
}
func();                //==> "undefined", 0
func(1);               //==> "number", 1
func("1", "2", "3");   //==> "string", 3

使用arguments.length属性,我们可以获得传递给函数的参数总数。 例如 -

function func(x){
   console.log(typeof x, arguments.length);
}
func();                //==> "undefined", 0
func(1);               //==> "number", 1
func("1", "2", "3");   //==> "string", 3

arguments对象有一个callee属性,它指的是你所在的函数。 例如 -

function func() {
   return arguments.callee; 
}
func();                // ==> func

JavaScript着名的关键字总是指当前的上下文。

变量的范围是程序中定义它的区域。 JavaScript变量只有两个范围。

  • Global Variables - 全局变量具有全局范围,这意味着它在JavaScript代码中的任何位置都可见。

  • Local Variables - 局部变量仅在定义它的函数中可见。 函数参数始终是该函数的本地参数。

局部变量优先于具有相同名称的全局变量。

回调是一个普通的JavaScript函数,作为参数或选项传递给某个方法。 一些回调只是事件,被调用以使用户有机会在触发某个状态时做出反应。

只要从某个内部作用域内访问在当前作用域之外定义的变量,就会创建闭包。

下面的示例显示了变量计数器如何在创建,增量和打印功能中可见,但不在其外部 -

function create() {
   var counter = 0;
   return {
      increment: function() {
         counter++;
      },
      print: function() {
         console.log(counter);
      }
   }
}
var c = create();
c.increment();
c.print();     // ==> 1

charAt()方法返回指定索引处的字符。

concat()方法返回指定索引处的字符。

forEach()方法为数组中的每个元素调用一个函数。

indexOf()方法返回第一次出现的指定值的调用String对象内的索引,如果未找到则返回-1。

length()方法返回字符串的长度。

pop()方法从数组中删除最后一个元素并返回该元素。

push()方法将一个或多个元素添加到数组的末尾,并返回数组的新长度。

reverse()方法反转数组元素的顺序 - 第一个成为最后一个,最后一个成为第一个。

sort()方法对数组的元素进行排序。

substr()方法通过指定的字符数返回从指定位置开始的字符串中的字符。

toLowerCase()方法返回转换为小写的调用字符串值。

toUpperCase()方法返回转换为大写的调用字符串值。

toString()方法返回数字值的字符串表示形式。

jQuery Selector是一个函数,它使用表达式根据给定的条件从DOM中找出匹配的元素。 简单地说,选择器用于使用jQuery选择一个或多个HTML元素。 一旦选择了元素,我们就可以对所选元素执行各种操作。 jQuery选择器以美元符号和括号 - $()开头。

工厂函数$()是jQuery()函数的同义词。 因此,如果你使用任何其他JavaScript库,其中$ sign与其他东西冲突,那么你可以用jQuery名称替换$ sign,你可以使用函数jQuery()而不是$()。

$('tag-name')选择文档中tag-name类型的所有元素。 例如,$('p')选择文档中的所有段落

$('#some-id')选择文档中具有some-id ID的单个元素。

$('。some-class')选择文档中具有某类类的所有元素。

$('*')选择DOM中可用的所有元素。

$('E,F,G')选择所有指定选择器E,F或G的组合结果,其中选择器可以是任何有效的jQuery选择器。

attr()方法可用于从匹配集中的第一个元素获取属性的值。

attr(name,value)方法可用于使用传递的值将命名属性设置为包装集中的所有元素。

addClass(classes)方法可用于将定义的样式表应用于所有匹配的元素。 您可以指定由空格分隔的多个类。

removeAttr(name)方法可用于从每个匹配的元素中删除属性。

如果指定的类至少存在于一组匹配的元素中,则hasClass(class)方法返回true。

removeClass(class)方法从匹配元素集中删除所有或指定的类。

如果指定的类不存在,则toggleClass(class)方法添加指定的类,如果存在,则删除指定的类。

html()方法获取第一个匹配元素的html内容(innerHTML)。

html(val)方法设置每个匹配元素的html内容。

text()方法获取所有匹配元素的组合文本内容。

text(val)设置所有匹配元素的文本内容。

val()方法获取第一个匹配元素的输入值。

如果在《input》上调用它,则val(val)方法设置每个匹配元素的value属性,但如果在

filter(selector)方法可用于过滤掉与指定选择器不匹配的匹配元素集中的所有元素。 可以使用任何选择器语法编写选择器。

eq(index)方法将匹配元素集合减少为单个元素。

is(selector)方法根据表达式检查当前选择,如果选择的至少一个元素适合给定的选择器,则返回true。

not(selector)方法从匹配元素集中删除与指定选择器匹配的元素。

切片(选择器)方法选择匹配元素的子集。

add(selector)方法将由给定选择器匹配的更多元素添加到匹配元素集。

andSelf()方法将先前的选择添加到当前选择。

children([selector])方法获取一组元素,其中包含每个匹配元素集的所有唯一直接子元素。

最接近的(selector)方法获取一组元素,这些元素包含与指定选择器匹配的最接近的父元素,包括起始元素。

如果元素是iframe,则contents()方法查找匹配元素(包括文本节点)内的所有子节点,或内容文档。

end()方法恢复最近的“破坏性”操作,将匹配元素集更改为先前的状态。

find(selector)方法搜索与指定选择器匹配的后代元素。

下一个([selector])获取一组元素,这些元素包含每个给定元素集的唯一下一个兄弟。

nextAll([selector])查找当前元素之后的所有兄弟元素。

offsetParent()方法返回一个jQuery集合,其中包含第一个匹配元素的定位父元素。

父([selector])方法获取元素的直接父级。 如果在一组元素上调用,则parent返回一组唯一的直接父元素。

parents([selector])方法获取一组元素,这些元素包含匹配元素集的唯一祖先(根元素除外)。

prev([selector])方法获取一组元素,其中包含每个匹配元素集的唯一先前兄弟节点。

prevAll([selector])方法查找当前元素前面的所有兄弟元素。

兄弟姐妹([selector])方法获取一组元素,其中包含每个匹配元素集的所有唯一同胞。

css(name)方法返回第一个匹配元素的样式属性。

css(name,value)方法将单个样式属性设置为所有匹配元素的值。

height(val)方法设置每个匹配元素的CSS高度。

height()方法获取第一个匹配元素的当前计算值,像素和高度。

innerHeight()方法获取第一个匹配元素的内部高度(不包括边框并包括填充)。

innerWidth()方法获取第一个匹配元素的内部宽度(不包括边框并包括填充)。

offset()方法获取第一个匹配元素相对于文档的当前偏移量(以像素为单位)。

offsetParent()方法返回一个jQuery集合,其中包含第一个匹配元素的定位父元素。

outerHeight([margin])方法获取第一个匹配元素的外部高度(默认包括边框和填充)。

outerWidth([margin])方法获取第一个匹配元素的外部宽度(默认包括边框和填充)。

position()方法获取元素相对于其偏移父元素的顶部和左侧位置。

width(val)方法设置每个匹配元素的CSS宽度。

width()方法获取第一个匹配元素的当前计算值,像素和宽度。

empty()方法从匹配元素集中删除所有子节点。

remove(expr)方法从DOM中删除所有匹配的元素。

Event对象的preventDefault()方法阻止浏览器执行默认操作。

Event对象的isDefaultPrevented()方法返回是否曾在此事件对象上调用event.preventDefault()。

Event对象的stopPropagation()方法停止将事件冒泡到父元素,从而阻止任何父处理程序被通知事件。

Event对象的isPropagationStopped()方法返回是否曾在此事件对象上调用event.stopPropagation()。

Event对象的stopImmediatePropagation()方法停止执行其余的处理程序。

Event对象的isImmediatePropagationStopped()方法返回是否曾在此事件对象上调用event.stopImmediatePropagation()。

bind(type,[data],fn)函数将处理程序绑定到每个匹配元素的一个或多个事件(如click)。 也可以绑定自定义事件。

ready(fn)函数绑定要在DOM准备好遍历和操作时执行的函数。

load(url,[data],[callback])方法从远程文件加载HTML并将其注入DOM。

ajaxComplete(callback)方法可用于注册每当AJAX请求完成时要执行的回调。

接下来是什么? (What is Next ?)

此外,您可以查看您对该主题所做的过去作业,并确保您能够自信地说出这些作业。 如果你更新鲜,那么面试官不会指望你会回答非常复杂的问题,而是你必须使你的基本概念非常强大。

↑回到顶部↑
WIKI教程 @2018