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. hibernate : object references an unsaved transient instance 问题

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

  2. 我的RTOS 之二 --Threadx在skyeye上仿真測试(基于2410)

    对于RTOS 移植来说,移植平台至少要提供双方面的设备. 1.OS执行时,须要tick,所以须要提供Timer定时器 2.OS执行时,须要调度,就是挂起当前线程,把控制权交给系统,所以须要訪问系统各个 ...

  3. Linq案例

    1.牛刀小试 using System; using System.Collections.Generic; using System.Linq; using System.Text; using S ...

  4. POJ 2378 树形DP??

    思路: 找到每个节点的儿子size的最大值 和n-当前节点size 取个Max //By SiriusRen #include <cstdio> #include <cstring& ...

  5. 什么是老板思维,什么是员工思维,深有体会,最近被N个行业洗脑……

    什么是老板思维,什么是员工思维,深有体会,最近被N个行业洗脑……

  6. 趣题: 按二进制中1的个数枚举1~2^n (位运算技巧)

    ; ; k <= n; k++){ << k)-,u = << n; s < u;){ ;i < n;i++) printf(-i)&); print ...

  7. ZJOI2017线段树

    ZJOI2017线段树 题意: ​ 给你一颗广义线段树,太长了,自己去看. 题解: ​ 直接上zkw那一套,把闭区间换成开区间,就是把取\([l,r]\),变成取\([l-1,l-1],[r+1,r+ ...

  8. 3/16 Django框架 环境搭建

    3/16 Django框架 环境搭建 环境搭建 Python解释器 Python代码通过Python解释器去执行. 编程语言 机器语言---汇编语言(助记符)---高级语言 解释型语言:解释器将代码一 ...

  9. 下载编译 Android wear 源代码,尝试制作可穿戴设备功能

    体验 Android Wear 缘由: Android wear 代码公布已经非常久了.一直没有尝试,这里是个编译的过程和步骤,假设要尝试.本文假定读者已经有下载编译 Android  的经验,假设没 ...

  10. BZOJ 1108 POI2007 天然气管道Gaz

    题目大意:给定平面上的n个黑点和n个白点.一个黑点仅仅能和右下方的白点匹配.代价为曼哈顿距离,求最小权值完备匹配 STO OTZ STO OTZ STO OTZ ans=Σ(y黑-y白+x白-x黑) ...