061、如何获取父级节点、上一个子级节点、下一个子级节点
 
 nextElementSibling  后一个兄弟元素  (如果没有是null)
 
 previousElementSibling  前一个兄弟元素  (如果没有就是null)
 
 parentNode 获取当前节点的父节点
 
062、元素节点的创建、添加、删除、替换、克隆
 
1、创建:document.createElement('元素名');
  
2、添加:appendChild()====>插入到最后       insertBefore()====>插入到最前面    
  用法:
          function append(obj,newEle){
              var achildren = obj.children;
              if(achildren.length>=1){
                return  obj.insertBefore(newEle,achildren[0])
               } else{
                return   obj.appendChild(newEle)
               }
          }
3、删除:box.removeChild(node) 从元素中移除某个子元素
  用法:  先找到父级节点然后在去删除子级节点
 
4、替换:box.replaceChild(子元素,父元素)
 
  用法:
      父元素.replaceChild(被替换成的元素,替换元素)
 
5、克隆:clone()
     元素.clone();
     如果里面传true的话会吧整个标签的所有节点都克隆,如果没有加true,只会克隆当前元素
 
 
063、浅谈关于文档碎片的理解
 
1、js操作dom时发生了什么?
     
   每次对dom的操作都会触发"重排",这严重影响到能耗,一般通常采取的做法是尽可能的减少dom操作来减少"重排"
 
2、什么是文档碎片?
  
    document.createDocumentFragment()
    一个容器,用于暂时存放创建的dom元素
    (其实这个跟咱们上课说那个先让到一个元素中,然后最后appendchild一样)
     
3、文档碎片有什么用?
  
   将需要添加的大量元素  先添加到文档碎片  中,再将文档碎片添加到需要插入的位置,大大减少dom操作,提高性能
 
064什么是回流和重绘
 
当渲染树中的一部分或者全部因为元素的尺寸、布局、隐藏等改变而需要重新构建的时候,这时候就会发生回流。
 
每个页面都至少发生一次回流,也就是页面第一次加载的时候。
 
在回流的时候,浏览器会使渲染树中受到影响的元素部分失效,并重新绘制这个部分的渲染树,完成回流以后,浏览器会重新绘制受到影响的部分元素到屏幕中,这个过程就是重绘
 
 
什么时候会发生回流?
     1、添加或者删除可见的DOM元素的时候
 
     2、元素的位置发生改变
 
     3、元素尺寸改变
 
     4、内容改变
 
     5、页面第一次渲染的时候
 
065、关于offsetX、offsetY、clientX、clientY、pageX、pageY、screenX、screenY的区别
 
 
offsetX、offsetY:
     鼠标相对于事件源元素(srcElement)的X,Y坐标
 
clientX、clientY:
     鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条。
 
pageX、pagey:
     类似于event.clientX、event.clientY,但它们使用的是文档坐标而非窗口坐标。这2个属性不是标准属性,但得到了广泛支持。IE事件中没有这2个属性
 
screenX、screenY:
     鼠标相对于用户显示器屏幕左上角的X,Y坐标。
 
 
 
066、如何在当前视窗的可见范围看见当前元素
 
scrollIntoView()
 
067、关于onkeydown和onkeypress的区别以及如何获取按下键盘的键盘码?
 
onkeydown:
            1、所有的英文字符都是大写
            2、功能键也会被识别
onkeypress
            1、所有英文字符大小写都支持
            2、所有功能键都不会被识别
            3、组合键ctrl+回车的code值是10
 
 
e.keyCode || e.which
 
068、什么是事件流? 什么是事件冒泡? 什么是事件捕获?
 
什么是事件流?
 
     当一个HTML元素产生一个事件时,该事件会在元素节点与根节点之间的路径传播,路径所经过的节点都会收到该事件,这个传播的过程叫做DOM事件流
 
元素触发事件时,事件的传播过程称为事件流,过程分为捕获和冒泡两种
 
冒泡事件:微软提出的   事件由子元素传递到父元素的过程,叫做冒泡
 
捕获事件:网景提出的   事件由父元素到子元素传递的过程,叫做事件捕获
 
069、什么是浏览器默认行为?如何组织浏览器默认行为?
 
例如:右键菜单  点击超链接跳转  图片拖拽
 
组织默认行为
 
     return false  
    
     preventDefault是一个方法:e.preventDefault();
    
     returnValue的值是一个常量:e.returnValue = false;
 
070、如何组织右键菜单?
 
document.oncontextmenu = function(e){
 
     e.preventDefault()
    
}

原生js大总结七的更多相关文章

  1. 原生js大总结九

    81.ES6的Symbol的作用是什么?   ES6引入了一种新的原始数据类型Symbol,表示独一无二的值   82.ES6中字符串和数组新增了那些方法   字符串       1.字符串模板    ...

  2. 原生js大总结十

    91.ajax的优点     a.提高运行效率   b.提高用户体验,让多件事情同时发生   c.在不刷新页面的情况下可以对局部数据进行加载和刷新       92.ajax请求的流程   1.创建通 ...

  3. 原生js大总结二

    011.if语句的优化   1.把次数多的条件和执行结果放到最前面   2.减少第一次无用的判断,可以用嵌套判断   3.判断语句禁止出现三次嵌套     012.谈谈你对switch的理解   1. ...

  4. 原生js大总结十一

    101.请简述prototype.__proto__ constructor三者的关系   1.prototype:     每一个函数都有一个prototype这个属性,而这个属性指向一个对象,这个 ...

  5. 原生js大总结八

    071.如何组织事件冒泡   利用事件对象属性:stopPropagation 和 cancelBubble   stopPropagetion是一个方法:e.stopPropagetion();   ...

  6. 原生js大总结四

    031.数组常用的一些方法   1.push: 在数组最后添加一个或者多个元素,返回添加后数组的长度   2.pop: 从数组最后取出一个元素,返回的是数组的最后一个元素(取出的元素)   3.uns ...

  7. 原生js大总结五

    041.在js中如何用方法将10进制的字符转换成16进制和8进制   数字.toString(16) 数字.toString(8)     042.如何创建时间对象   new Date()   04 ...

  8. 原生js大总结三

    021.定义函数的几种方式   1.关键字函数:function fnName(){};   2.字面量函数:var fn = function(){};   3.构造函数:var fn = new ...

  9. 原生js大总结一

    001.浅谈堆和栈的理解?   js变量存储有栈存储和堆存储,基本数据类型的变量存储在栈中,引用数据类型的变量存储在堆中 引用类型数据的地址也存在栈中   当访问基础类型变量时,直接从栈中取值.当访问 ...

随机推荐

  1. monyer教你玩电脑——CSS、HTML、JS、XML的关系

    首先Monyer还是有必要提一句:这是一篇低中等难度的文章.如果你是高手或被认为是高手,那么请pass掉这篇文章:如果你是新手,甚至不知道什么是css(譬如百度模版)等,那么请pass掉这篇文章.谢谢 ...

  2. MySQL Pool

    创建连接池 function SqlPool() { this.flag = true;//是否连接过 this.pool = mysql.createPool({ host : 'localhost ...

  3. 测试理论--web测试方法总结

    一.输入框 1.字符型输入框: (1)字符型输入框:英文全角.英文半角.数字.空或者空格.特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&符号.禁止直接输入特殊字符时,使 ...

  4. hibernate : object references an unsaved transient instance 问题

    save顺序问题---比如学生表和班级表..学生表里有班级ID的外键.一对多的关系. 你save的时候应该先save班级,再save学生..否则学生的外键没有对应的值,引发异常

  5. Activiti工作流框架学习(二)——使用Activiti提供的API完成流程操作

    可以在项目中加入log4j,将logj4.properties文件拷入到src目录下,这样框架执行的sql就可以输出到到控制台,log4j提供的日志级别有以下几种: Fatal  error  war ...

  6. xgboost参数调优的几个地方

    tree ensemble里面最重要就是防止过拟合.  min_child_weight是叶子节点中样本个数乘上二阶导数后的加和,用来控制分裂后叶子节点中的样本个数.样本个数过少,容易过拟合.  su ...

  7. win7安装python开发环境,执行python

    在win7上安装python的开发环境是很easy的事情 Step1:下载python安装文件 url:https://www.python.org/download 去这里找到你想要下载的文件 St ...

  8. Supermap 组合单值专题图与标签专题图演示样例

    效果图例如以下:单值专题图并显示每一个区域的相关文字信息 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc29uZ2hmdQ==/font/5a6L5L2T ...

  9. js插件---Amaze UI dialog如何使用

    js插件---Amaze UI dialog如何使用 一.总结 一句话总结:别人给你列出来的参考手册照着用先 1.在哪里去找插件参考资料或者使用手册(一般位置找不到的时候)? github上面啊,非常 ...

  10. | 插件下载陈磊SQL MD5 加密

    简介:SQL MD5 加密 下述是 SQL Server 中 MD5加密 16位和32位的 ,)) ,ModifiedOn=null ; ,)) ,ModifiedOn=null ;