【javascript常见面试题】常见前端面试题及答案 (13)

同样的代码,在”严格模式”中,可能会有不一样的运行结果;一些在”正常模式”下可以运行的语句,在”严格模式”下将不能运行。

77.解释”chaining”。

jQuery方法链接。直到现在,我们都是一次写一条jQuery语句(一条接着另一条)。不过,有一种名为链接(chaining)的技术,允许我们在相同的元素上运行多条jQuery命令,一条接着另一条。

提示:这样的话,浏览器就不必多次查找相同的元素。

如需链接一个动作,您只需简单地把该动作追加到之前的动作上。

78.解释”deferreds”。

开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异步的操作(比如ajax读取服务器数据),也有同步的操作(比如遍历一个大型数组),它们都不是立即能得到结果的。

通常的做法是,为它们指定回调函数(callback)。即事先规定,一旦它们运行结束,应该调用哪些函数。

但是,在回调函数方面,jQuery的功能非常弱。为了改变这一点,jQuery开发团队就设计了deferred对象。

简单说,deferred对象就是jQuery的回调函数解决方案。在英语中,defer的意思是”延迟”,所以deferred对象的含义就是”延迟”到未来某个点再执行。

79.你知道哪些针对jQuery的优化方法?

1.总是从ID选择器开始继承在jQuery中最快的选择器是ID选择器,因为它直接来自于JavaScript的getElementById()方法。

例如有一段HTML代码:

 <div id="content">

     <form method="post"action="#">

         <h2>交通信号灯</h2>

         <ul id="traffic_light">

             <li>

                 <input type="radio"class="on"name="light"value="red"/>红色

             </li>

             <li>

                 <input type="radio"class="off"name="light"value="yellow"/>黄色

            </li>

            <li>

                <input type="radio"class="off"name="light"value="green"/>绿色

            </li>

        </ul>

        <input class="button"id="traffic_button"type="submit"value="Go"/>

    </form>

</div>

比如需要选择红绿单选框,那么可以使用一个tag name来限制(修饰)class,如下所示:var active_light=(input.on);IDvaractivelight=(“input.on”);当然也可以结合就近的ID,如下所示:varactivelight=(“#traffic_light input.on”); 如果采用下面的选择器,那么效率是低效的。var traffic_button=(“#content.button”);因为button已经有ID了,我们可以直接使用ID选择器。如下所示:var traffic_button=(“#content.button”);因为button已经有ID了,我们可以直接使用ID选择器。如下所示:var traffic_button=(“#traffic_button”);当然这只是对于单一的元素来讲。如果你需要选择多个元素,这必然会涉及到DOM遍历和循环,为了提高性能,建议从最近的ID开始继承。如下所示:var traffic_lights=$(“#traffic_light input”);

2.在class前使用tag(标签名)在jQuery中第二快的选择器是tag(标签)选择器(比如:$(“head”))。

跟ID选择器累时,因为它来自原生的getElementsByTagName()方法。继续看刚才那段HTML代码:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgddxp.html