JS 的各种位置,比如 clientHeight,scrollHeight,offsetHeight ,以及 scrollTop, offsetTop,clientTop 的区别
- clientHeight:表示的是可视区域的高度,不包含 border 和滚动条
- offsetHeight:表示可视区域的高度,包含了 border 和滚动条
- scrollHeight:表示了所有区域的高度,包含了因为滚动被隐藏的部分。
- clientTop:表示边框 border 的厚度,在未指定的情况下一般为 0
- scrollTop:滚动后被隐藏的高度,获取对象相对于由 offsetParent 属性指定的父坐标(css 定位的元素或 body 元素)距离顶端的高度。
typeof与instanceof的区别
typeof 与 instanceof 都是判断数据类型的方法,区别如下:
typeof 会返回一个变量的基本类型,它虽然可以判断基础数据类型( null 除外),但是引用数据类型中,除了 function 类型以外,其他的也无法判断
instanceof 返回的是一个布尔值instanceof 可以准确地判断复杂引用数据类型,但是不能正确判断基础数据类型
上述两种方法都有弊端,并不能满足所有场景的需求如果需要通用检测数据类型,可以采用 Object.prototype.toString ,调用该方法,统一返回格式“[object Xxx]”的字符串,如下图