题目
- 简要描述HTML5中的盒模型的分类
- 块盒:独占一行,width、height、margin、padding、border均有效
- 行盒:盒子沿着内容延伸,不独占一行,border、margin、padding左右有效垂直方向不实际占有空间
- 行块盒:不独占一行,margin、border、padding、width、height均有效
- 解析:
HTML5中将每一个元素都看作一个盒子,每个盒子由content、padding、border、margin组成。
content是内容区域,块盒和行块盒可以自行设定width和height,但是行盒不能自行设置,行盒的content的width和height有内容的多少决定。
padding、border和margin对块盒和行块盒都能自行设置并且都能生效,但是行盒只是水平方向有效,在垂直方向上行盒的高度由内容的大小决定所以不会生效。 - 考察要点:
对盒模型概念的理解以及与合模型相关的属性作用在不同盒子上的区别和对各种盒子的区别的理解
- 清除浮动的几种方式,各自的优点
- 在标签结尾处添加空div标签
优点:简单快速、代码少,兼容性较高<div style="clear:both;">
缺点:增加空标签,不利于页面优化- 给父元素单独定义宽高
优点:简单快速、代码少
缺点:无法进行响应式布局 - 父级定义overflow:hidden
优点:简单快速、代码少,兼容性较高
缺点:超出部分被隐藏了,在布局的时候要注意 - 父级定义class=“clearfix”,使用after伪类和zoom
.clearfix:after{
content:"";
display:block;
clear:both;
height:0;
overflow:hidden;
}
.clearfix{
zoom:1;
}
优点:写法固定,没有多余结构,兼容性高
缺点:老版本不兼容
- 解析
由于浮动在布局中比较常见,主要用于菜单列表的横向排列等,但是浮动常常会对其他元素产生影响,如果要想消除影响,要将其与其他元素隔开。
一种方式是使用BFC,BFC可以形成新的布局空间,并且不会相互影响是一种较好的清楚浮动的方法。
另一种方式是在浮动元素和被影响的元素之间增加一个元素充当隔板以隔绝浮动的影响,这种方法通常为添加空元素、使用伪类等。 - 考察要点
本题考查清除浮动的常见方式以及对每中方式的掌握程度,并要知道每种方式有何优劣,以便在实际运用中根据其优劣选择更适合的方式。平时也要多收集解决相同问题的不同方式并进行对其比较,可以在不同情境选择更合适的解决方案。
- 描述一下预编译过程
预编译分为全局预编译和函数预编译
- 全局预编译的过程为
- 创建GO(全局对象)
- 用var关键字声明的变量作为属性名挂到全局对象上,属性值为undefined,如果有重名属性直接覆盖
- 用function关键字声明的函数作为属性名挂到全局对象上,属性值为函数体,如果有重明属性直接覆盖
- 函数预编译的过程为
- 创建AO(执行期上下文)
- 查找形参和变量声明,值赋予undefined,如果有重名属性直接覆盖
- 实参值赋给形参
- 查找函数声明值赋予函数体
- 解析
预编译是js中比较重要的知识,其主要发生在代码执行之前,其中比较关键的就是变量提升和函数提升,变量提升会将变量声明提升到当前作用域的顶部,函数提升会将用function声明的函数提升到当前作用域的顶部并且值为函数体,函数提升更为彻底。 - 考察要点
考察预编译的分类和过程、变量提升和函数提升时的区别。
对于此类知识首先记忆,然后练习和理解,通过练习达到熟练的地步。
- 以下表达式输出是什么?
parseInt(3,8);
3
parseInt(3,2);
NaN
parseInt(3,-1);
NaN
- 解析
parseInt的参数传入一个时,该参数是一个字符串,如果传入的不是字符串会自动转换为字符串,返回的值是一个number类型。返回转换为整数后的数字
转换规则,从第一个自负开始转换,如果第一个非空格字符不能转换程数字返回NaN,否则直到遇到不能转换的字符时停止
如果传入的参数是两个,第一个参数和上述一样,第二个参数为一个基底数,取值范围为2-36之间,小于2或大于36返回NaN,如果第一个参数不能通过第二个参数转换也会返回NaN。函数返回一个通过进制数转换成的十进制数。可以理解为进制数,但是会参与该函数转换算法的计算。 - 考察要点
本题考察parseInt()方法的作用、返回值以及不同参数的理解,parseInt()的第二个参数是一个基底数,该参数会参与计算进行返回一个数,可以在理解上认为是一个进制数,要注意理解和实际的区别。
总结
- 对于一些知识可以先记忆然后练习和理解
- 在实践中总结解决同一类或同一个问题的方法,然后在进行比较明确每个方法的使用场景,以便灵活选择
- 将规律或理论与实践结合以验证其正确性,发现实际与理论的具体差异更能增进理解