当前位置: 首页 > news >正文

华宇笔试题总结

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);//插入到目标节点之前  

转载于:https://www.cnblogs.com/ybleeho/p/7507475.html

相关文章:

  • system.objectdisposedexception: 已释放该集合_集合啦!动物森友会夏季更新第 2 弹!烟火大会、梦境参观、复原储存资料即将来袭...
  • JS中innerHTML、outerHTML、innerText 、outerText、value的区别与联系?jQuery中的text()、html()和val() ?...
  • python 逗号作用 语句间_python逗号作用
  • SDUT_2116 数据结构实验之链表一:顺序建立链表
  • 华三模拟器hcl实验手册_Caffeinated 6.828:实验 1:PC 的引导过程
  • WEB API 版本控制
  • 阿里云轻量服务器 外网卡_腾讯云轻量应用服务器(免费内测)开箱测评
  • mixbox工具箱_让小米路由回归智能,3款第三方工具箱以及插件评测
  • mysql 学习笔记
  • 华为杯数学建模优秀论文_数学建模经典例题(2006年国赛A题与优秀论文)
  • 信息验证 正则表达式
  • python多线程join_Python多线程中阻塞(join)与锁(Lock)使用误区解析
  • Table对象代表一个HTML表格,在文档中table标签每出现一次,一个table对象就会被创建。...
  • 抛物线的中点生成算法_以字段覆盖标准指导的高效测试生成技术
  • 树转化为二叉树_关于数据结构树,这一篇足够让你入门了
  • js学习笔记
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • magento 货币换算
  • Nodejs和JavaWeb协助开发
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 飞驰在Mesos的涡轮引擎上
  • 规范化安全开发 KOA 手脚架
  • 简单数学运算程序(不定期更新)
  • 普通函数和构造函数的区别
  • 前端代码风格自动化系列(二)之Commitlint
  • 前端面试之闭包
  • 提醒我喝水chrome插件开发指南
  • 王永庆:技术创新改变教育未来
  • 06-01 点餐小程序前台界面搭建
  • C# - 为值类型重定义相等性
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​虚拟化系列介绍(十)
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (12)目标检测_SSD基于pytorch搭建代码
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (libusb) usb口自动刷新
  • (python)数据结构---字典
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (十)c52学习之旅-定时器实验
  • (十八)三元表达式和列表解析
  • (一) springboot详细介绍
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET 材料检测系统崩溃分析
  • .NET 解决重复提交问题
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET单元测试
  • .NET开发者必备的11款免费工具
  • .NET学习教程二——.net基础定义+VS常用设置
  • @Bean, @Component, @Configuration简析