一、== 与 === 的区别
- === 当两边的值的类型相同时,直接比较值;当类型不同时,直接返回false
- == 当两边值得类型相同时,直接比较值是否相同;当类型不同时,转换为类型相同的值,然后比较
- 类型转换:数据类型是boolean、string、number,三者优先转换为数字进行比较
- 数据类型是null、undefined,他们只跟自己本身相等
- 数据类型是NaN时,NaN==NaN false,NaN和所有值包括自己本身都不相等
- 引用数据类型比较的是内存地址是否相等
二、事件
var btn = document.querySeletor('.btn')
btn.onclick = functionA
btn.onclick = functionB
btn.addEventListener('click',functionA)
btn.addEventListener('click',functionB)
btn.removeEventListener('click',functionB)
- 其实就是DOM0与DOM2级事件的区别,还涉及一个概念是冒泡与捕获
1、冒泡与捕获
- 先解释冒泡与捕获
- 冒泡:同一事件由子集向父级逐层传递为冒泡
- 捕获:同一事件由父级向子集逐层传递为捕获
e.stopPropagation()
if(e.stopPropagation){
e.stopPropagation()
}else{
e.cancleBubble = true
}
2、DOM0与DOM2
- DOM0事件全部都是冒泡,DOM2事件可以指定冒泡或捕获
- DOM0同一事件只能执行一次,DOM2同一事件可以执行多次
原型与原型链