jQuery常见面试题(转)
代码以jQuery 1.83 为例
一 :Q: What is the difference between .get()
, []
, and .eq()
?
A: eq返回原生jQuery对象,截取某些el元素生成Jquery新对象
get和[]返回的都是原生的Dom对象,原理一致
get和[]区别是get是通过jQuery对象的方法获取,[]是根据jQuery是一个数组对象获取
二: What is the difference between .bind()
, .live()
, and .delegate()
?
A: 它们实质调用的都是jQuery实例对象的on函数,更底层是jQuery.event.add();
官方描述:Attach an event handler function for one or more events to the selected elements
.on( events [, selector ] [, data ], handler(eventObject) )
三种绑定函数代码
bind: this.on(types, null, data, fn); 直接绑定到元素上
live: jQuery(this.context).on(types, this.selector, data, fn); 将事件绑定到context上,冒泡,当触发元素为this.selector时触发
delegate: this.on(types. selector, data, fn)
selector如何添加
三: How, and why, would you namespace a bound event handler?
A: click.myPlugin.simple定义了两个命名空间 为这个独特的click事件 可以被移除通过 .off('click.myPlugin') or .off('click.simple')
命名空间跟css 相似都不是分层的,只需要一个名字来匹配
jquery.event jquery.event.global jquery.event.handle
四:What is the difference between $
and $.fn
? Or just what is $.fn
.
1
2
3
|
window.jQuery = window.$ = jQuery; jQuery.fn = jQuery.prototype = {} |
五:what's jQuery's context/selector and why use it
1
2
3
|
<div id= "context" > <div id= "inner" ></div> </div> |
context/selector 示例
1
2
3
4
5
6
7
8
9
|
<script> var $ret = $( '#inner' , $( '#context' )[0]); console.log($ret.selector); // #inner console.log($ret.context); // #context var $ret = $( '#inner' , '#context' ); console.log( $ret.selector); // '#context #inner' console.log( $ret.context); // document </script> |
context 就是限定查找的范围
context 必须是一个DOM元素,context 底层还是用了.find
方法来实现
官方API selector context is implemented with the .find()
method,so $("span", this)
is equivalent to $(this).find("span")
注:例子仅供展示,id类型查找非常快,所以不要用这种context,直接$('#inner')
最好,当查找tag/class时用会比较高效.
六:Difference between 'delegate()' and 'live()'
delegate
指定了委托对象
live
委托给了jQuery的context,1.9以后删除了,用on
代替
一下三个效果一致
1
2
3
|
$(selector).live(events, data, handler); $(document).delegate(selector, events. data, handler); $(document).on(events, selector, data, handler); |
七:What is the effetcs (of fx) queue?
.queue([queueName])
官方API:Show the queue of functions to be executed on the matched elements.
Queues allow a sequence of actions to be called on an element asynchronously, without halting program execution. 最大的特点是这些代码异步执行,不影响后面代码操作,说白了就是将他们放入一个队列中
1
2
3
4
5
6
7
8
9
10
11
12
13
|
div { margin:3px; width:40px; height:40px; position:absolute; left:0px; top:60px; background:green; display:none; } div.newcolor { background:blue; } p { color:red; } <p>The queue length is: <span></span></p> <div id= "box" >1</div> <div style= "top:120px;" >2</div> <button id= "start" >start</button> <button id= "end" >end</button> |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
<script> var $box = $( 'div' ); function runIt() { $box.show() .animate({ 'left' : "+=200" }, 2000) .queue( function (next){ $( this ).addClass( 'newcolor' ); next(); }) .slideToggle(1000) .slideToggle( 'fast' ) .animate({ 'left' : "-=200" }, 2000) .queue( function (next){ $( this ).removeClass( 'newcolor' ); next(); }) .hide( 'slow' ) .show(200) .slideUp( "normal" ); } function showIt(){ var n = $box.queue(); $( "span" ).text(n.length); setTimeout(showIt, 100); } function stopIt(){ $box.queue( 'fx' , []); $box.stop(); } $( '#start' ).click( function (){ runIt(); }); $( '#end' ).click( function (){ stopIt(); }) showIt(); </script> |
八:attr和prop的区别
attr是操作属性节点,DOM的API setAttribute,getAttribute(HTML)
prop是操作获取到的对应js对象的属性 (JS)
场景:遇到要获取或设置checked,selected,readonly和disabled等属性时,用prop方法显然更好
prop更高效,因为attr要DOM访问
附加:
Generally, DOM attributes represent the state of DOM information as retrieved from the document, such as the value
attribute in the markup <input type="text" value="abc">
. DOM properties represent the dynamic state of the document; for example if the user clicks in the input element above and typesdef
the .prop("value")
is abcdef
but the .attr("value")
remains abc
.
jQuery常见面试题(转)的更多相关文章
- jQuery 常见面试题
一 :Q: What is the difference between .get(), [], and .eq()? A: eq返回原生jQuery对象,截取某些el元素生成Jquery新对象 ge ...
- 【javascript常见面试题】常见前端面试题及答案
转自:http://www.cnblogs.com/syfwhu/p/4434132.html 前言 本文是在GitHub上看到一个大牛总结的前端常见面试题,很多问题问的都很好,很经典.很有代表性.上 ...
- Vue常见面试题汇总
Vue框架常见面试题 1.active-class是哪个组件的属性?嵌套路由怎么定义? 答:vue-router模块的router-link组件. 2.怎么定义vue-router的动态路由?怎么 ...
- java常见面试题及答案 1-10(基础篇)
java常见面试题及答案 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程.Java 源文件被 ...
- Web开发的常见面试题HTML和HTML5等
作为一名前端开发人员,HTML,HTML5以及网站优化都是必须掌握的技术,下面列举一下HTML, HTML5, 网站优化等常见的面试题: HTML常见面试题: 1. 什么是Semantic HTML( ...
- 常见面试题之ListView的复用及如何优化
经常有人问我,作为刚毕业的要去面试,关于安卓开发的问题,技术面试官会经常问哪些问题呢?我想来想去不能一股脑的全写出来,我准备把这些问题单独拿出来写,并详细的分析一下,这样对于初学者是最有帮助的.这次的 ...
- iOS常见面试题汇总
iOS常见面试题汇总 1. 什么是 ARC? (ARC 是为了解决什么问题而诞生的?) ARC 是 Automatic Reference Counting 的缩写, 即自动引用计数. 这是苹果在 i ...
- JDBC常见面试题
以下我是归纳的JDBC知识点图: 图上的知识点都可以在我其他的文章内找到相应内容. JDBC常见面试题 JDBC操作数据库的步骤 ? JDBC操作数据库的步骤 ? 注册数据库驱动. 建立数据库连接. ...
- Mybatis常见面试题
Mybatis常见面试题 #{}和${}的区别是什么? #{}和${}的区别是什么? 在Mybatis中,有两种占位符 #{}解析传递进来的参数数据 ${}对传递进来的参数原样拼接在SQL中 #{}是 ...
随机推荐
- 立即执行函数(IIFE)的理解与运用
作为JavaScript的常用语法,立即执行函数IIFE(Immediately-Invoked Function Expression)是值得我们认真去学习探究的. 一.创建函数的两种方式 我们先从 ...
- C# 非独占延时函数 非Sleep
在C#窗口程序中,如果在主线程里调用Sleep,在Sleep完成之前, 界面呈现出假死状态,不能响应任何操作! 下边实现的是非独占性延时函数,延时过时中界面仍可响应消息: public static ...
- 小组开发项目--NABC分析
我们小组--女神经们,开发项目是重力解锁,我认为我们的项目的最大特点就是不使用开锁键唤醒屏幕.下面我将针对这一特点进行NABC分析: N:经调查一部分人群的手机不能使用就是开机键坏了,我们就是针对这一 ...
- [Z] 深入浅出 Systemd
1. Systemd 的简介和特点 Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度.systemd 和 u ...
- 阿里云服务器mysql修改编码问题
最近在学习struts+spring+hibernate,强烈推荐新手一本书:陈天河<轻量级web应用开发>,这本书是我见过的国内最好的书,初学者可以买本读读. 不说这个了,来说说我的问题 ...
- 浅谈IT认识
我理解的IT 新华电脑学院,引领IT潮流.这句耳熟能详的广告语,从小就在我的记忆里深存,当看到别人QQ用黑客技术刷了好多钻,于是乎无比的向往这种黑客技术,后来网上购物更是在互联网上一疯而起 ...
- 关于通过JS识别浏览器类型的方法
JS检测浏览器类型的方法 网络上一般采用navigator.userAgent判断浏览器标识的办法,但是有个麻烦的问题是IE11不断升级之后,IE11的userAgent变成: "Moz ...
- hdu 3572 Task Schedule 网络流
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3572 Our geometry princess XMM has stoped her study i ...
- UVA 10078 The Art Gallery
Problem: Century Arts has hundreds of art galleries scattered all around the country and you are hir ...
- BZOJ 2038
基础不牢:补莫队算法: 莫队算法入门题: 2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 26 ...