1. 节点操作
添加节点:appendChild insertBefore(如果选择某个位置插入,insertBefore第二个参数)
删除节点:removeChild
获取节点:getElementById getElementsByTagName getElementsByClassName querySelector querySelectorAll
克隆节点:cloneNode
创建节点: innerHTML createElement document.write()
2. 原型,原型链
原型对象:系统会给我们定义的每一个构造函数都会默认绑定一个 protoType属性,这个属性指向的就是原型对象,通过原型对象可以实现原生JS的继承
原型链:是对象属性和方法的查找规则,会在当前对象中查找属性或者方法,如果当对象没有,就会查询当前对象的原型对象,如果原型对象没有就会往上查找原型对象的原型对象,依次类推,直到找到最上层Object的原型对象,如果还没有的话,属性就会返回undefined 如果是方法就会报错
-
事件阶段
事件捕获,目标阶段,事件冒泡
-
事件委托
原理利用事件冒泡,本来应该给子元素注册的事件,给父元素来注册
-
如何阻止事件冒泡,如何阻止默认行为
event.stopPropagation()
event.preventDefault()或者 return false -
定时器
setInterval() setTimeout()
-
内置对象常用方法
Math.random()
Math.abs()
Math.floor()
Math.ceil()
Math.round()
String.prototype.substr()
String.prototype.split()
String.prototype.replace() -
window中的宿主对象
dom,history,location,screen,navigator
-
JS如何设置、获取盒模型对应的宽和高?
方法一:
缺点: 只能获取行内样式,不能获取内嵌的样式和外链的样式
var dom = document.getElementId('id')
dom.width
方法二:(通用方式为了兼容IE)
window.getComputedStyle(dom).width;
getComputedStyle()是一个可以获取当前元素所有最终使用的CSS属性值的方法;兼容性很好。
方法三:
dom.getBoundingClientRect().width/height
getBoundingClientRect用于获取某个元素相对于视窗的位置集合。集合中有top, right, bottom, left,height,width,x,y共8个属性;兼容性很好。