1. line-height继承问题
(1)父元素行高为具体数值,则直接继承该值
(2)写比例,则直接继承该比例
(3)写百分比,则继承算出来的值
2.rem
(1) px是一个绝对长度单位,最常用
(2)em是相对长度单位,相对于父元素,不常用
(3)rem是相对长度单位,相对于根元素,想用于响应式布局
3.如何实现响应式
(1)media-query,根据不同的屏幕宽度设置根元素font-size
(2)rem,基于根元素的相对单位
(3)vh网页视口高度的1/100,vw网页视口宽度的1/100, vmax取两者的最大值,vmin取两者的最小值
4.typeof能判断哪些类型
(1)识别所有的的值类型
(2)识别函数
(3)判断是否是引用类型(无法具体判断是哪种引用类型)
5.何时使用===何时使用==
进行两个元素之间的判断时,除了null和undefined使用==,其他都用===
6.值类型和引用类型的区别
7.手写深拷贝
function deepClone(obj = {}) {
if(typeof obj !== 'object' || obj == null ) {
// obj是null,或者不是对象和数组,直接返回
return obj
}
let result
if( obj instanceof Array) {
result = []
} else {
result = {}
}
for (let key in obj) {
//保证key不是原型的属性
if(obj.hasOwnProPerty(key)) {
// 调用递归
result[key] = deepClone(obj[key])
}
return result
}
8. 变量计算-类型转换
(1)字符串的拼接,字符串与数值相加数字会被认为是字符串拼接
(2)== 只判断值,不判断类型
(3)if语句和逻辑运算符
<1>truly变量:!!a === true的变量
<2>falsely变量: !!a === false的变量
// 以下是falsely变量,其他都是truely变量
!!0 === false
!!NaN === false
!!'' === false
!! null === flalse
!! undefined === false
!!false === false