typeof null 为 "object"
不同的对象在底层都表示为二进制,在Javascript中二进制前三位都为0的话会被判断为Object类型,null的二进制表示全为0,自然前三位也是0,所以执行typeof时会返回"object"。
null在语义上是“对object值的空引用”,所以null的type应该是object。而且其他基本类型里面没有null的位置。
在其他语言里面的null在js里面对应的是undefined。
所以,不要用null,用undefined。undefined能满足你们对null的一切要求。
x++ 和 ++x
x++和++x都是自增运算符。
let x = 1
y=x++是先把x的值赋给y,此时y的值为1。赋值给y后,x自增,即x=x+1,此时x的值就变成2,输出y值则还是1.
y=++x是x自增,即x=x+1,此时x的值为2。自增完后,x的值赋给y,此时y的值就变成2。
综上来看,也就是y=x++相当于,y=x,x=x+1。y=++x相当于,x=x+1,y=x。(执行的先后顺序不一样)
事件代理
利用事件冒泡原理,把事件函数绑定在父级元素上,再指定需要执行函数的子元素执行事件函数;在触发事件时,事件会依次冒泡到父级元素,从而触发绑定在父级元素的事件函数。