javascript3试题

javascript周考试题

1.谈谈你对DOM事件流的认识。

DOM(文档对象模型)结构是一个树型结构,当一个HTML元素产生一个事件时,该事件会在元素节点与根结点之间的路径传播,路径所经过的结点都会收到该事件,这个传播过程可称为DOM事件流。

事件流包括三个阶段:事件捕获阶段、处于目标阶段和冒泡阶段。首先发生的是事件捕获,为截获事件提供了机会。然后是实际的目标接收到事件。最后一个阶段是冒泡阶段,可以在这个阶段对事件作出响应。

2.请列出所有给元素绑定事件的方式以及对象解除绑定方式。

绑定事件的方式:

a.元素属性绑定,结构跟行为没有分离,不推荐使用,注意:该事件处理函数只能是全局函数

b.通过on +事件类型给元素对象方式绑定,事件处理程序只能绑定一次,后面的会覆盖前面的

c. ele.addEventListener(type, fn, boolean)

type事件类型

fn事件处理函数this指向ele,绑定该方法的元素

boolean将事件添加到 冒泡[false]/捕获[true]阶段

可以给元素绑定多个事件处理程序,先绑定先执行,低版本IE8不支持

低版本IE8及以下

ele.attachEvent("on" + type, fn)后绑定先执行

fn事件处理函数this指向全局对象window

解除绑定方式:

a.元素属性绑定,按钮

使用show = function(){}; element.onclick = null;

b.通过on这种方式绑定的,element.onclick = null;

c.ele.removeEventListener(type, fn, boolean)

里边的三个参数要跟绑定时的参数完全一致

fn事件处理程序,保证是同一个函数,该函数定义在外部,引用函数名

IE8及以下attachEvent移除事件

detachEvent移除事件

detachEvent("on" + type, fn);参数跟绑定的时候一致

3.请写出所有阻止默认事件的方式。

a.属性绑定,on这种方式绑定的事件return false;

b. addEventListener绑定的就使用e.preventDefault()

IE8及以下attachEvent  e.returnValue = false;

4.请写出所有取消事件冒泡的方式。

a.属性绑定,on这种方式绑定的事件e.cancelBubble = true;

b. addEventListener绑定的就使用e.stopPropagation();

5.事件委托是什么,谈谈你的理解。

事件委托,将本来要添加到共同子元素的事件添加到它们存在页面上的共同的父元素,只需给父元素添加一次事件,利用的是冒泡的原理

优点:1.减少元素事件绑定,节省内存

2.减少子元素查找获取,减少DOM操作,提高效率

3.后新增(动态添加)的子元素也包含跟原来子元素一样的事件

6.代码说明call和apply方法的区别。

这两个都是函数的方法,可以改变this的指向,代码如下,obj为调用call,apply方法的函数的this指向

fn.call(obj,param1,param2,...)

call传入单个参数

fn.apply(obj,[param1,param2,...])

apply传入一个数组

7.事件类型有哪些?写出你所知道的鼠标键盘事件(不少于12个)。

事件类型有鼠标事件、键盘事件、表单事件、触屏事件等

click单击mousedown/mouseup

mousedown鼠标点下去

mousemove鼠标移动

mouseup鼠标松开

mouseover鼠标移入,冒泡

mouseout鼠标移出,冒泡

mouseenter鼠标移入,不冒泡

mouseleave鼠标移出,不冒泡

dblclick双击 由两次单击组成

contextmenu右键菜单

mousewheel滚轮事件,非标准事件IE/Chrome/Safari支持

DOMMouseScroll火狐私有滚轮事件,只能使用ele.addEventListener("DOMMouseScroll", fn, false)

keydown键按下 检测到键盘上所有的键,实体键/辅助键

keyup键松开

keypress键按下 检测实体键,所有的字符,数字,空格,enter键

8.写出你所熟知的处理JS兼容性的代码,不少于5个。

a. e || window.event事件对象兼容

b. document.documentElement.scrollTop || document.body.scrollTop页面滚动条scrollTop兼容

c. element.onmousewheel = fn; element.addEventListener(“DOMMouseScroll”, fn, false);滚轮事件

d. window.addEventListener && window.addEventListener(type, handle, false);

window.attachEvent && window.attachEvent(“on”+type,handle)事件绑定

e. window.getComputedStyle && window.getComputedStyle(ele, null)

ele.currentStyle获取非行间样式

9.解释图片预加载,并写出相关代码。

将需要使用到的图片资源预先加载出来,防止用户等待时间过长。

优点:图片已缓存到浏览器,等待时间少,体验流畅。

缺点:用户首次进入等待加载时间长


10.拖拽代码。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,784评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,745评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,702评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,229评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,245评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,376评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,798评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,471评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,655评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,485评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,535评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,235评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,793评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,863评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,096评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,654评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,233评论 2 341

推荐阅读更多精彩内容