Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务,点击查看活动详情。
padding与margin的区别
padding表示的是标签对象的内边距,margin表示的是标签的外边距。它们本质的区别是作用的对象不同,margin作用的是周围的对象,padding作用的对象是自身。
vw与百分比的区别
vw:只要设备的宽度有关
百分比:默认继承父级的宽度
行内元素与块级元素
行内元素不换行,不可以设置宽高,大小由内容决定
块级元素独占一行,可以设置宽高,默认继承父级元素的宽度,高度不继承
如何让body元素中的div快速居中
设置body元素的display属性值为flex,div元素的margin属性值为auto
flex-grow属性的计算方式
flex-grow属性决定了如何分配父级元素的剩余空间到子元素,它的属性值代表权重。Flex-grow的值为非负数,如果取值为非负数,那么和0的取值效果是一样的,即不会讲剩余空间分配给子元素。
举个例子:父级元素的宽度为500px,三个子元素的宽度分别为100px,200px和100px,三个子元素的flex-grow的属性值分别为1,2,2,那么三个子元素得到的剩余空间的大小分别是:
(500-100-200-100)*1/5 = 20
(500-100-200-100)*2/5 = 40
(500-100-200-100)*2/5 = 40
所以三个子元素的最终宽度为120px,240px和140px
深拷贝与浅拷贝
Js里的堆存储的是引用数据类型,栈存储的是基本数据类型。像数组、对象这类引用类型数据会在堆里面存储它们的地址。
当将引用类型数据赋值给某个变量是,只是将这个地址赋值给了这个变量,即它们引用的是同一个数据块,因此当更改这个变量时,原来的引用数据就跟这变化,这就是浅拷贝。
当讲基本类型数据赋值给某个变量时,是在栈内重新分配的一个内存,存储了基本类型数据的拷贝,再将这个拷贝的值赋给了这个变量,所以它们两个的存储的值是相互独立,互不影响的,这就是深拷贝。
注意:解构是浅拷贝。
如果解构的是一维数组或一维对象,解构就相当于类深拷贝。
如果是多维数据或多维对象,为浅拷贝。