zoukankan      html  css  js  c++  java
  • 华宇笔试题总结

    1.css选择器

    通用选择器,标签选择器,类选择器,id选择器

    2.css样式

    内嵌样式,内部样式表,外部样式表

    3.split()和join()的区别

    String.split() 执行的操作与 Array.join 执行的操作是相反的

    split() 方法用于把一个字符串分割成字符串数组

    http://www.w3school.com.cn/jsref/jsref_join.asp

    http://www.w3school.com.cn/jsref/jsref_split.asp

    4.call和apply的区别

    call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向。因为 JavaScript 的函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念。

    二者的作用完全一样,只是接受参数的方式不太一样,call 需要把参数按顺序传递进去,而 apply 则是把参数放在数组里。
    JavaScript 中,某个函数的参数数量是不固定的,因此要说适用条件的话,当你的参数是明确知道数量时,用 call,而不确定的时候,用 apply,然后把参数 push 进数组传递进去。当参数数量不确定时,函数内部也可以通过 arguments 这个数组来便利所有的参数。
    5.js添加,删除,替换,插入到某个结点的方法
    1. //查找节点  
    2. document.getElementById("id");//通过id查找,返回唯一的节点,如果有多个将会返回第一个,在IE6、7中有个bug,会返回name值相同的元素,所有要做一个兼容  
    3. document.getElementsByClassName("class");//通过class查找,返回节点数组  
    4. document.getElementsByTagName("div");  
    5.   
    6. //创建节点  
    7. document.createDocumentFragment();//创建内存文档碎片  
    8. document.createElement();//创建元素  
    9. document.createTextNode();//创建文本节点  
    10.   
    11. //添加节  
    12. var ele = document.getElementById("my_div");  
    13. var oldEle = document.createElement("p");  
    14. var newEle=document.createElement("div");  
    15. ele.appendChild(oldEle);  
    16. //移除  
    17. ele.removeChild(oldEle);  
    18. //替换  
    19. ele.replaceChild(newEle,oldEle);  
    20. ;插入  
    21. ele.insertBefore(oldEle,newEle);//在newEle之前插入 oldEle节点  
    22.   
    23. //复制节点  
    24. var cEle = oldEle.cloneNode(true);//深度复制,复制节点下面所有的子节点  
    25. cEle = oldEle.cloneNode(false);//只复制当前节点,不复制子节点  
    26.   
    27. //移动节点  
    28. var cloneEle = oldEle.cloneNode(true);//被移动的节点  
    29. document.removeChild(oldEle);//删除原节点  
    30. document.insertBefore(cloneEle,newEle);//插入到目标节点之前  
     
    6.请写出jQuery绑定事件的方法,不少于两种

    1.  bind/Unbind:匹配页面元素进行相关事件的处理

          $("#id").bind('click',function(){alert('tt!')});

          $('a').bind({

              click:function(){alert('a');},

          mouseover:function(){alert('aagain!')}

    2.  One:为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数。

          $('a').one('click',function(){

              alert('a');

          })

    3.  live:能处理动态添加的元素,给那些后添加的元素也一样绑定事件

          $('a').live('click,function(){

              alert('showmessage!');

          })

    7.请指出一下代码的性能问题,并经行优化。

    var info="腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站。";
    info +="拍拍网于2005年9月12日上线发布,";
    info +="2006年3月13日宣布正式运营,";
    info +="是目前国内第二大电子商务平台。";
    info=info.split(",");
    for(var i=0; i<info.length; i++)
    {  alert(info[i]);  }

    优化:

    1、由于字符串相加比较慢,所以可以考虑直接把所有字符写在同一个变量中。

    2、仔细考虑这段JS需要实现的功能,会发现,其实完全可以用一个数组来存储,然后遍历数组输出,这样效率会提高很多,因为省去了info=info.split(",");执行所要消耗的时间。

     

     
    1. //查找节点  
    2. document.getElementById("id");//通过id查找,返回唯一的节点,如果有多个将会返回第一个,在IE6、7中有个bug,会返回name值相同的元素,所有要做一个兼容  
    3. document.getElementsByClassName("class");//通过class查找,返回节点数组  
    4. document.getElementsByTagName("div");  
    5.   
    6. //创建节点  
    7. document.createDocumentFragment();//创建内存文档碎片  
    8. document.createElement();//创建元素  
    9. document.createTextNode();//创建文本节点  
    10.   
    11. //添加节  
    12. var ele = document.getElementById("my_div");  
    13. var oldEle = document.createElement("p");  
    14. var newEle=document.createElement("div");  
    15. ele.appendChild(oldEle);  
    16. //移除  
    17. ele.removeChild(oldEle);  
    18. //替换  
    19. ele.replaceChild(newEle,oldEle);  
    20. ;插入  
    21. ele.insertBefore(oldEle,newEle);//在newEle之前插入 oldEle节点  
    22.   
    23. //复制节点  
    24. var cEle = oldEle.cloneNode(true);//深度复制,复制节点下面所有的子节点  
    25. cEle = oldEle.cloneNode(false);//只复制当前节点,不复制子节点  
    26.   
    27. //移动节点  
    28. var cloneEle = oldEle.cloneNode(true);//被移动的节点  
    29. document.removeChild(oldEle);//删除原节点  
    30. document.insertBefore(cloneEle,newEle);//插入到目标节点之前  
  • 相关阅读:
    C# 中的本地函数
    C# 9.0 正式发布了(C# 9.0 on the record)
    如何禁用控制台窗口的关闭按钮?
    在 WSL Ubuntu 上使用 .NET 进行跨平台开发新手入门
    C# 中 ConcurrentDictionary 一定线程安全吗?
    Docker 与 Podman 容器管理的比较
    C# 中的数字分隔符 _
    C# 8: 可变结构体中的只读实例成员
    C# 中的只读结构体(readonly struct)
    C# 8: 默认接口方法
  • 原文地址:https://www.cnblogs.com/ybleeho/p/7507475.html
Copyright © 2011-2022 走看看