来源(第四范式2019前端面试题):https://www.nowcoder.com/profile/2496345/test/21517591/318667
1.JavaScript数据类型
JavaScript基本数据类型:null undefined number string 还有es6的symbol
引用类型:Object,Array,Function
2.标准盒模型和怪异盒模型
参考文章:
https://www.cnblogs.com/yky-iris/p/7719895.html
https://blog.csdn.net/zhangyingchengqi/article/details/48489055
标准盒模型:
可以看到,在标准盒模型下,width和height是内容区域即content的width和height。而盒子总宽度为
在标准模式下,一个块的总宽度= width + margin(左右) + padding(左右) + border(左右)
怪异盒模型:
而IE盒模型或怪异盒模型显而易见的区别就是,width和height除了content区域外,还包含padding和border。盒子的总宽度为
一个块的总宽度= width + margin(左右)(即width已经包含了padding和border值)
3.HTML哪些是块级元素,哪些是行内元素
·块级元素
1.总是从新的一行开始
2.高度、宽度都是可控的
3.宽度没有设置时,默认为100%
4.块级元素中可以包含块级元素和行内元素
·行内元素
1.和其他元素都在一行
2.高度、宽度以及内边距都是不可控的
3.宽高就是内容的高度,不可以改变
4.行内元素只能行内元素,不能包含块级元素
附注:关于行内元素能否设置宽高的问题
可以参考:https://blog.csdn.net/little_little0_0/article/details/78566870
总结下:并不是所有的行内元素都不能设置宽高,替换元素就可以,例如input就可以宽高,span就不能设置宽高。
替换元素:浏览器根据元素的标签和属性来决定元素的的具体显示内容。HTML中的img、input、textarea、select、object都是替换元素。这些元素往往没有实际的内容,即是一个空元素。
不可替换元素:(X)HTML 的大多数元素是不可替换元素,即其内容直接表现给用户端(例如浏览器)。
除此之外,当我们给行内元素添加属性float时,我们也可以给它设置宽高。因为不论元素本身是什么,当它浮动时,就会生成一个块级框。行内元素也就会生成相应的行内框。此时我们为它设置宽高,宽高就会起作用了。例如
<div style="width: 100px; height: 100px; background-color: black">
<span style="float: left; width: 20px; height: 20px; background-color: red"&g