资讯专栏INFORMATION COLUMN

前端开发每日一练160303期

amc / 559人阅读

摘要:对于早期版本,方法用于直接附加一个事件处理程序到元素上。处理程序附加到对象中当前选中的元素,所以,在绑定事件的时候,这些元素必须已经存在。重绘不会带来重新布局,并不一定伴随重排。重排是更明显的一种改变,可以理解为渲染树需要重新计算。

本期问题

1.jquerybindondelegate有什么区别?

:先来看看css88上API的定义:

on在选定的元素上绑定一个或多个事件处理函数。在1.7版本中,on方法提供绑定事件处理的所有功能。

bind对于早期版本,.bind()方法用于直接附加一个事件处理程序到元素上。处理程序附加到jQuery对象中当前选中的元素,所以,在.bind()绑定事件的时候,这些元素必须已经存在。

delegate 为所有匹配选择器(selector参数)的元素绑定一个或多个事件处理函数,基于一个指定的根元素的子集,匹配的元素包括那些目前已经匹配到的元素,也包括那些今后可能匹配到的元素。

所以说,on相当于bind和delegate的合集

2.
从上图可以看出:

带有defer和async属性的script标签与后续的文档加载是并行执行的,也就是异步。而带有defer属性的js文件要在所有元素解析完、DOMCotentLoad之前完成。

async是加载完立即执行。

3.下面这段代码在XHTML中能顺利运行吗?如果不能?如何解决?

:不能。应将小于号变为<
4.请说出下方脚本的执行结果:

var a= 1, b=2;
    function c(){
        alert("c1")
    }
    function test(){
        alert(a);
        alert(b);
        c();
        function b(){
            return 0
        }
        var a= 5, b=6;
        function c(){
            alert("c2")
        }
    }
    test();

undefinedfunction b(){return 0}c2.不知道该怎么解释,有不明白的请留言。

5.下述脚本能正确alert2么?如果不行请写出解决方案:

for(var i= 0,l=10,obj=[];i<=l;i++){
        obj[i] = function(){
            alert(i);
        };
    }
    obj[2]()

:不能。会alert11。用闭包。

6.请说出下方脚本执行结果:

var array = [1, 2];
    deal(array, array);
    function deal(arrA, arrB){
        arrA = [3, 4];
        console.log(array[1]);  //打印出什么内容?
        arrB[1] = 9;
        console.log(array[1]);  //打印出什么内容?
    }

:2,9。可参考知乎上的这个答案:数组赋值的问题

7.如何将参数从一个函数传递到另一个函数?请写出实现代码。

答:闭包。

8.原生ajax的创建过程?

var xmlHttp=new XMLHttpRequest();
xmlHttp.open("GET",url);
xmlHttp.send();
xmlHttp.onreadystatechange=function(){
   if(xmlHttp.readystate==4&&xmlHttp.status=200){
       //success
   }
}

9.解释一下重绘重排

重绘是一个元素外观的改变所触发的浏览器行为,例如改变visibility、outline、背景色等属性。浏览器会根据元素的新属性重新绘制,使元素呈现新的外观。重绘不会带来重新布局,并不一定伴随重排。

重排是更明显的一种改变,可以理解为渲染树需要重新计算。下面是常见的触发重排的操作:1. DOM元素的几何属性变化、 2. DOM树的结构变化、3. 获取某些属性

10.querySelector存在什么问题?

兼容性。IE8+

对浏览器支持的选择器,它只是选择性支持。

getElementBy系列的执行速度基本都是querySelectorAll的100+倍

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/49752.html

相关文章

  • 前端开发每日一练160303

    摘要:对于早期版本,方法用于直接附加一个事件处理程序到元素上。处理程序附加到对象中当前选中的元素,所以,在绑定事件的时候,这些元素必须已经存在。重绘不会带来重新布局,并不一定伴随重排。重排是更明显的一种改变,可以理解为渲染树需要重新计算。 本期问题 1.jquery中bind、on和delegate有什么区别? 答:先来看看css88上API的定义: on在选定的元素上绑定一个或多个事件处...

    you_De 评论0 收藏0
  • 前端开发每日一练160303

    摘要:对于早期版本,方法用于直接附加一个事件处理程序到元素上。处理程序附加到对象中当前选中的元素,所以,在绑定事件的时候,这些元素必须已经存在。重绘不会带来重新布局,并不一定伴随重排。重排是更明显的一种改变,可以理解为渲染树需要重新计算。 本期问题 1.jquery中bind、on和delegate有什么区别? 答:先来看看css88上API的定义: on在选定的元素上绑定一个或多个事件处...

    z2xy 评论0 收藏0
  • 每日一练的榜单公布啦~ 速来领奖品!

    摘要:坚持就是胜利养成好习惯从每日一练开始做起通过一个月的努力,终于迎来了我们每日一练的榜单让我们一起看看都有哪些博主你在不在其中榜单揭晓请看获奖博主昵称阿年嗯啊猿码叔叔雪离话丶小辉奖品展示度暖暖恒温 坚持就是胜利!养成好习惯从每日一练开始做起~ 通过一个月的努力,终于迎来了我们每日一练的TOP1...

    cfanr 评论0 收藏0
  • Python每日一练0003

    摘要:问题在每日一练中介绍了如何一个可迭代对象,使用运算符即可但往往我们遇到的问题是可迭代对象中的数量是不确定的这个时候该如何拿到我们想要的元素,比如我们只需要可迭代对象的第一个或者最后一个元素而已解决方案使用中的运算符例如我们需要拿到一个元组的 问题 在每日一练0001中介绍了如何unpack一个可迭代对象,使用,运算符即可 但往往我们遇到的问题是可迭代对象中的数量是不确定的 这个时候该如...

    happyfish 评论0 收藏0
  • Python每日一练0031

    摘要:问题为什么返回的是讨论这是我在上发现的一个有趣的问题,这个问题可以简单的用一张图解释因为最后一个字母最后或者第一个字母之前也包含了一个空的字符串,所以算出来是个但更有趣的是,返回的是这就延伸出来两个哲学问题来源关注欢迎关注我的微信公众号每日 问题 为什么test.count()返回的是5? >>> test.count() 5 讨论 这是我在StackOverflow上发现的一个有趣的...

    whjin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<