JS\jQuery\XML部分 面试题

作者: 独云 | 来源:发表于2017-08-28 10:24 被阅读132次

     http://blog.duywl.com/java/jsjqueryxml部分-面试题/

    (一)JS\jQuery\XML部分

    接下来通过在

    $(function(){

    );

    8、你为什么要使用jquery

    【参考】

    答:因为jQuery是轻量级的框架,大小不到30kb,它有强大的选择器,出色的DOM操作的封装,有可靠的事件处理机制(jQuery在处理事件绑定的时候相当的可靠),完善的ajax(它的ajax封装的非常的好,不需要考虑复杂浏览器的兼容性和XMLHttpRequest对象的创建和使用的问题。)出色的浏览器的兼容性。而且支持链式操作,隐式迭代。行为层和结构层的分离,还支持丰富的插件,jquery的文档也非常的丰富。

    9、你觉得jquery有哪些好处?

    答案同上

    10、你使用jquery遇到过哪些问题,你是怎么解决的?

    【参考】

    答:这个答案是开发的,看你是否有相关的项目经验。例前台拿不到值,JSON可是出现的错误(多了一个空格等)这编译是不会报错的jquery库与其他库冲突:

    1>如果其他库在jquery库之前导入的话

    ①我们可以通过jquery.noconflict()将变量的$的控制权过度给其他库

    ②自定义快捷键,用一个变量接住jquery.noconflict()

    ③通过函数传参

    2>如果jquery库在其他库之前导入就直接使用jquery今天在处理一个数据问题时,发现jQuery.ajax()方法返回的值一直有问题,清除缓存后数据无误,多次测试后发现返回的值都是之前的值,并且一直未执行url(后台为JAVA,设置断点一直未进入)。在网上查找下,发现是未设置type的原因。如果没设置jQuery.ajax的type="Post",那么ajax就会默认type="Get",这就会导致之前数据被缓存起来。加上type="Post",问题解决!

    11、你知道jquery中的选择器吗,请讲一下有哪些选择器?

    【参考】

    jQuery中的选择器大致分为:基本选择器,层次选择器,过滤选择器,表单选择器

    12、jquery中的选择器和css中的选择器有区别吗?

    【参考】

    jQuery选择器支持CSS里的选择器,jQuery选择器可用来添加样式和添加相应的行为CSS中的选择器是只能添加相应的样式

    13、你觉得jquery中的选择器有什么优势?

    【参考】

    简单的写法$('ID')来代替document.getElementById()函数支持CSS1到CSS3选择器完善的处理机制(就算写错了id也不会报错)

    14、你在使用选择器的时候有有没有什么觉得要注意的地方?

    【参考】

    1)选择器中含有".","#","["等特殊字符的时候需要进行转译

    2)属性选择器的引号问题

    3)选择器中含有空格的注意事项

    15、jquery对象和dom对象是怎样转换的?

    【参考】

    答:jquery转DOM对象:jQuery对象是一个数组对象,可以通过[index]的丰富得到相应的DOM对象还可以通过get[index]去得到相应的DOM对象。DOM对象转jQuery对象:$(DOM对象)

    16、你是如何使用jquery中的ajax的?

    【参考】

    如果是一些常规的ajax程序的话,使用load(),$.get(),$.post(),就可以搞定了,一般我会使用的是$.post()方法。如果需要设定beforeSend(提交前回调函数),error(失败后处理),success(成功后处理)及complete(请求完成后处理)回调函数等,这个时候我会使用$.ajax()

    17、你觉得jquery中的ajax好用吗,为什么?

    【参考】

    答:好用的。因为jQuery提供了一些日常开发中夙瑶的快捷操作,例load,ajax,get,post等等,所以使用jQuery开发ajax将变得极其简单,我们就可以集中精力在业务和用户的体验上,不需要去理会那些繁琐的XMLHttpRequest对象了。

    18、jquery$.get()提交和$.post()提交有区别吗?

    1)$.get()方法使用GET方法来进行异步请求的。$.post()方法使用POST方法来进行异步请求的。

    2)get请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给Web服务器的,这种传递是对用户不可见的。

    3)get方式传输的数据大小不能超过2KB而POST要大的多

    4)GET方式请求的数据会被浏览器缓存起来,因此有安全问题。

    19、jquery中的load方法一般怎么用的?

    【参考】

    答:load方法一般在载入远程HTML代码并插入到DOM中的时候用通常用来从Web服务器上获取静态的数据文件。

    如果要传递参数的话,可以使用$.get()或$.post()

    20、jquery中你是如何去操作样式的?

    【参考】

    addClass()来追加样式

    removeClass()来删除样式

    toggle()来切换样式

    21、简单的讲叙一下jquery是怎么处理事件的,你用过哪些事件?

    【参考】

    答:首先去装载文档,在页面家在完毕后,浏览器会通过javascript为DOM元素添加事件。

    22、你使用过jquery中的动画吗,是怎样用的?

    【参考】

    答:使用过。hide()和show()同时修改多个样式属性。像高度,宽度,不透明度。fadeIn()和fadeOut() fadeTo()只改变不透明度slideUp()和slideDown() slideToggle()只改变高度animate()属于自定义动画的方法。

    23、你使用过jquery中的插件吗?

    【参考】

    答:看个人的实力和经验来回答了。

    24、你一般用什么去提交数据,为什么?

    【参考】

    答:一般我会使用的是$.post()方法。如果需要设定beforeSend(提交前回调函数),error(失败后处理),success(成功后处理)及complete(请求完成后处理)回调函数等,这个时候我会使用$.ajax()

    25、jquery中引入css有几种方式?

    【参考】

    答:四种行内式,内嵌式,导入式,链接式

    26、你在jquery中使用过哪些插入节点的方法,它们的区别是什么?

    【参考】

    答:append(),appendTo(),prepend(),prependTo(),after(),insertAfter()before(),insertBefore()大致可以分为内部追加和外部追加

    append()表式向每个元素内部追加内容。

    appendTo()表示讲所有的元素追加到指定的元素中。例$(A)appendTo(B)是将A追加到B中下面的方法解释类似

    27、你使用过包裹节点的方法吗,包裹节点有方法有什么好处?

    【参考】

    答: wrapAll(),wrap(), wrapInner()需要在文档中插入额外的结构化标记的时候可以使用这些包裹的方法应为它不会帛画原始文档的语义

    28、jquery中如何来获取或和设置属性?

    【参考】

    jQuery中可以用attr()方法来获取和设置元素属性

    removeAttr()方法来删除元素属性

    29、如何来设置和获取HTML和文本的值?

    【参考】

    html()方法类似于innerHTML属性可以用来读取或者设置某个元素中的HTML内容注意:html()可以用于xhtml文档不能用于xml文档

    text()类似于innerText属性可以用来读取或设置某个元素中文本内容。

    val()可以用来设置和获取元素的值

    30、jquery中有哪些方法可以遍历节点?

    【参考】

    children()取得匹配元素的子元素集合,只考虑子元素不考虑后代元素

    next()取得匹配元素后面紧邻的同辈元素

    prev()取得匹配元素前面紧邻的同辈元素

    siblings()取得匹配元素前后的所有同辈元素

    closest()取得最近的匹配元素find()取得匹配元素中的元素集合包括子代和后代

    31、子元素选择器和后代选择器元素有什么区别?

    【参考】

    答:子代元素是找子节点下的所有元素,后代元素是找子节点或子节点的子节点中的元素

    32、jquery中可以替换节点吗?

    【参考】

    答:可以在jQuery中有两者替换节点的方式replaceWith()和replaceAll()例如在

    hao are you

    替换成

    I am fine

    $('p').replaceWith('I am fine');replaceAll与replaceWith的用法前后调换一下即可。

    33、你觉得beforeSend方法有什么用?

    【参考】

    答:发送请求前可以修改XMLHttpRequest对象的函数,在beforeSend中如果返回false可以取消本次的Ajax请求。XMLHttpRequest对象是唯一的参数所以在这个方法里可以做验证

    34、siblings()方法和$('prev~div')选择器是一样的嘛?

    【参考】

    答: $('prev~div')只能选择'#prev'元素后面的同辈

    元素而siblings()方法与前后的文职无关,只要是同辈节点就都能匹配。

    35、你在ajax中使用过JSON吗,你是如何用的?

    【参考】

    答:使用过,在$.getJSON()方法的时候就是。因为$.getJSON()就是用于加载JSON文件的

    36、有哪些查询节点的选择器?

    【参考】

    答:我在公司使用过

    :first查询第一个,

    :last查询最后一个,

    :odd查询奇数但是索引从0开始

    :even查询偶数,

    :eq(index)查询相等的,

    :gt(index)查询大于index的,

    :lt查询小于index

    :header选取所有的标题等

    37、nextAll()替代$('prev~siblindgs')选择器吗?

    【参考】

    答:能。使用nextAll()和使用$('prev~siblindgs')是一样的

    38、jQuery中有几种方法可以来设置和获取样式

    答:addClass()方法,attr()方法

    39、$(document).ready()方法和window.onload有什么区别?

    【参考】

    答:两个方法有相似的功能,但是在实行时机方面是有区别的。

    1)window.onload方法是在网页中所有的元素(包括元素的所有关联文件)完全加载到浏览器后才执行的。

    2)$(document).ready()方法可以在DOM载入就绪时就对其进行操纵,并调用执行绑定的函数。

    40、jQuery是如何处理缓存的?

    【参考】

    答:要处理缓存就是禁用缓存.

    1)通过$.post()方法来获取数据,那么默认就是禁用缓存的。

    2)通过$.get()方法来获取数据,可以通过设置时间戳来避免缓存。可以在URL后面加上+(+new Date)例$.get('ajax.xml?'+(+new Date),function () {//内容});

    3)通过$.ajax方法来获取数据,只要设置cache:false即可。

    41、$.getScript()方法和$.getJson()方法有什么区别?

    【参考】

    1)$.getScript()方法可以直接加载.js文件,并且不需要对javascript文件进行处理,javascript文件会自动执行。

    2)$.getJson()是用于加载JSON文件的,用法和$.getScript()

    42、你读过哪些有关于jQuery的书吗?

    【参考】

    《jquery基础教程》《jquery实战》《锋利的jquery》《巧用jquery》《jQuery用户界面库学习指南》等

    43、$("#msg").text();$("#msg").text("new content");有什么区别?

    【参考】

    1 $("#msg").text()是返回id为msg的元素节点的文本内容

    2 $("#msg").text("new content");是将“new content”作为普通文本串写入id为msg的元素节点内容中,页面显示粗体的new content

    44、radio单选组的第二个元素为当前选中值,该怎么去取?

    【参考】

    答: $('input[name=items]').get(1).checked = true;

    45、选择器中idclass有什么区别?

    【参考】

    答:在网页中每个id名称只能用一次,class可以允许重复使用

    46、你使用过哪些数据格式,它们各有什么特点?

    【参考】

    答: HTML格式,JSON格式,javascript格式,XML格式

    1)HTML片段提供外部数据一般来说是最简单的。

    2)如果数据需要重用,而且其他应用程序也可能一次受到影响,那么在性能和文件大小方面具有优势的JSON通常是不错的选择。

    3)而当远程应用程序未知时,XML则能够为良好的互操作性提供最可靠的保证。

    47、jQuery能做什么?

    【参考】

    1)获取页面的元素

    2)修改页面的外观

    3)改变页面大的内容

    4)响应用户的页面操作

    5)为页面添加动态效果

    6)无需刷新页面,即可以从服务器获取信息

    7)简化常见的javascript任务

    48、ajaxdata主要有几种方式?

    【参考】

    三种,html拼接的,json数组,form表单经serialize()序列化的。

    49、jQuery中的hover()toggle()有什么区别?

    【参考】

    hover()和toggle()都是jQuery中两个合成事件。hover()方法用于模拟光标悬停事件。toggle()方法是连续点击事件。

    50、你知道jQuery中的事件冒泡吗,它是怎么执行的,何如来停止冒泡事件?

    【参考】

    答:知道,事件冒泡是从里面的往外面开始触发。在jQuery中提供了stopPropagation()方法可以停止冒泡。

    51、例如单击超链接后会自动跳转,单击"提交"按钮后表单会提交等,有时候我想阻止这些默认的行为,该怎么办?

    【参考】

    可以用event.preventDefault()或在事件处理函数中返回false,即return false;

    52、jquery表单提交前有几种校验方法?分别为??

    【参考】

    formData:返回一个数组,可以通过循环调用来校验

    jaForm:返回一个jQuery对象,所有需要先转换成dom对象

    fieldValue:返回一个数组beforeSend()

    53、jquery中你有没有编写过插件,插件有什么好处?你编写过那些插件?它应该注意那些?

    【参考】

    插件的好处:对已有的一系列方法或函数的封装,以便在其他地方重新利用,方便后期维护和提高开发效率

    插件的分类:封装对象方法插件、封装全局函数插件、选择器插件

    注意的地方:

    1)插件的文件名推荐命名为jquery.[插件名].js,以免和其他的javaScript库插件混淆。

    2)所有的对象方法都应当附加到jQuery.fn对象上,而所有的全局函数都应当附加到jQuery对象本身上。

    3)插件应该返回一个jQuery对象,以保证插件的可链式操作。

    4)避免在插件内部使用$作为jQuery对象的别名,而应使用完整的jQuery来表示,这样可以避免冲突或使用闭包来避免。

    5)所有的方法或函数插件,都应当一分好结尾,否则压缩的时候可能出现问题。在插件头部加上分号,这样可以避免他人的不规范代码给插件带来影响。

    6)在插件中通过$.extent({})封装全局函数,选择器插件,扩展已有的object对象

    7)通过$.fn.extend({})封装对象方法插件

    54、怎样给jquery动态附加新的元素?那么怎样给新生成的元素绑定事件呢?

    【参考】

    jQuery的html()可以给现在元素附加新的元素直接在元素还未生成前就绑定肯定是无效的,因为所绑定的元素目前根本不存在。所以我们可以通过live和livequery来动态绑定事件

    55、IEFireFox脚本兼容性问题

    (1) window.event:

    表示当前的事件对象,IE有这个对象,FF没有,FF通过给事件处理函数传递事件对象

    (2)获取事件源

    IE用srcElement获取事件源,而FF用target获取事件源

    (3)添加,去除事件

    IE:element.attachEvent(“onclick”, function) element.detachEvent(“onclick”, function)

    FF:element.addEventListener(“click”, function, true) element.removeEventListener(“click”, function, true)

    (4)获取标签的自定义属性

    IE:div1.value或div1[“value”]

    FF:可用div1.getAttribute(“value”)

    (5) document.getElementByName()和document.all[name]

    IE;document.getElementByName()和document.all[name]均不能获取div元素

    FF:可以

    (6) input.type的属性

    IE:input.type只读

    FF:input.type可读写

    (7) innerText textContent outerHTML

    IE:支持innerText, outerHTML

    FF:支持textContent

    (8)是否可用id代替HTML元素

    IE:可以用id来代替HTML元素

    FF:不可以

    这里只列出了常见的,还有不少

    56、css+div的优势

    Div+CSS标准的优点:

    1.大大缩减页面代码,提高页面浏览速度,缩减带宽成本;

    2.结构清晰,容易被搜索引擎搜索到,天生优化了seo

    3.缩短改版时间。只要简单的修改几个CSS文件就可以重新设计一个有成百上千页面的站点。

    4.强大的字体控制和排版能力。CSS控制字体的能力比糟糕的FONT标签好多了,有了CSS,我们不再需要用FONT标签或者透明的1 px GIF图片来控制标题,改变字体颜色,字体样式等等。

    5.CSS非常容易编写。你可以象写html代码一样轻松地编写CSS。

    6.提高易用性。使用CSS可以结构化HTML

    7.可以一次设计,随处发布。

    更好的控制页面布局

    57、DIVSpan的区别?

    DIV(division)是一个块级元素,可以包含段落、标题、表格,乃至诸如章节、摘要和备注等。而SPAN是行内元素,SPAN的前后是不会换行的,它没有结构的意义,纯粹是应用样式,当其他行内元素都不合适时,可以使用SPAN

    在HTML视图中工作时,可以在

    内编辑文本,将某些字包含在元素内,以强调那些字。与

    不同,和它周围的文本一起移动

    58、css是什么

    层叠样式表,用来进行页面样式设计,美化页面显示。

    59、xml有哪些解析技术,有什么区别?

    有DOM,SAX,STAX等

    DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问

    60、ajax的工作原理?

    Ajax基本上就是把JavaScript技术和XMLHttpRequest对象放在Web表单和服务器之间。当用户填写表单时,数据发送给一些JavaScript代码而不是直接发送给服务器。相反,JavaScript代码捕获表单数据并向服务器发送请求。同时用户屏幕上的表单也不会闪烁、消失或延迟。换句话说,JavaScript代码在幕后发送请求,用户甚至不知道请求的发出。更好的是,请求是异步发送的,就是说JavaScript代码(和用户)不用等待服务器的响应。因此用户可以继续输入数据、滚动屏幕和使用应用程序。

    然后,服务器将数据返回JavaScript代码(仍然在Web表单中),后者决定如何处理这些数据。它可以迅速更新表单数据,让人感觉应用程序是立即完成的,表单没有提交或刷新而用户得到了新数据。JavaScript代码甚至可以对收到的数据执行某种计算,再发送另一个请求,完全不需要用户干预!这就是XMLHttpRequest的强大之处。它可以根据需要自行与服务器进行交互,用户甚至可以完全不知道幕后发生的一切。结果就是类似于桌面应用程序的动态、快速响应、高交互性的体验。

    61、HTMLform提交之前如何验证数值文本框的内容全部为数字?否则的话提示用户并终止提交?

    function chkForm(this)

    {

    var value = thist.d1.value;

    var len = value.length;

    for(var i=0;i

    {

    if(value.charAt(i)>"9" || value.charAt(i)<"0")

    {

    alert("含有非数字字符");return false;

    }

    }

    return true;

    }

    62、请写出用于校验HTML文本框中输入的内容全部为数字的javascript代码

    function chkNumber(eleText)

    {

    var value = eleText.value;

    var len = value.length;

    for(var i=0;i

    {

    if(value.charAt(i)>"9" || value.charAt(i)<"0")

    {

    alert("含有非数字字符");

    eleText.focus();

    break;

    }

    }

    }

    除了写完代码,还应该在网页上写出实验步骤和在代码中加入实现思路,让面试官一看就明白你的意图和检查你的结果。

    63、xml有哪些解析技术?区别是什么?【北京科瑞明】

    答:

    有DOM,SAX,STAX等

    DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问

    STAX:Streaming API for XML (StAX)

    讲解这些区别是不需要特别去比较

    64、javascript中设置定时调用myfun()函数(周期为1)的代码是?

    setInterval(myfun(),1000)

    65、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?

    两种形式dtd、schema,

    本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的)。

    解析的中有:DOM、SAX、JDOM、DOM4J等。

    DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问

    SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问。

    66、HTTP请求返回的状态码有哪些?分别有什么含义?

    3XX:重定向,这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的Location域中指明。

    302:请求的资源现在临时从不同的URI响应请求

    303:对应当前请求的响应可以在另一个URI上被找到,而且客户端应当采用GET的方式访问那个资源。

    4XX:请求错误,这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。

    像,403、404、405错误

    5XX:服务器错误,这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。

    像,500、501、502等错误

    67、二叉树遍历有几种方法【中恒互联】

    有3种方法。先序遍历、中序遍历、后序遍历

    68、JavaScript写一个小时钟,网页内容如下:

    2013年12月23日12:23:30

    每秒钟跳动一次

    参考:

    document.write('

    ');

    function showTime(){

    var time = new Date();

    document.getElementById("time").innerHTML=time.getFullYear()+"年"+(time.getMonth()+1)+"月"+time.getDate()+"日"+time.getHours()+":"+time.getMinutes()+":"+time.getSeconds();

    }

    setInterval(showTime,500);

    69、JSONXML的优缺点

    【参考答案】

    1)在可读性方面,JSON和XML的数据可读性基本相同。JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。

    2)在可扩展性方面,XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。

    3)在编码难度方面,XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。

    4)在解码难度方面,XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。

    5)在流行度方面,XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous Javascript and JSON)了。

    6)JSON和XML同样拥有丰富的解析手段。

    7)JSON相对于XML来讲,数据的体积小。

    8)JSON与JavaScript的交互更加方便。

    9)JSON对数据的描述性比XML较差。

    10)JSON的速度要远远快于XML。

    相关文章

      网友评论

        本文标题:JS\jQuery\XML部分 面试题

        本文链接:https://www.haomeiwen.com/subject/qcmwdxtx.html