小米2019秋招前端笔试题解析:基础语法与布局知识点

需积分: 9 8 下载量 102 浏览量 更新于2024-09-07 收藏 22KB DOCX 举报
1. 在这段C++代码片段中,我们看到定义了一个变量`val`并初始化为12,然后定义了一个函数`fun1()`。函数内部首先尝试输出`val`的值,此时`val`的原始值12会被打印,因为函数内部有自己的局部变量。接着,函数内部将`val`重新赋值为20,并再次输出,这次输出的是20。因此,`fun1();`的执行结果是`undefined20`,选项(c)是正确的。 2. TCP/IP协议栈中的网络层主要负责端到端的数据传输,其核心协议是Internet协议(IP协议),它负责数据包的路由选择和寻址。选项(a)符合这个描述。 3. 在HTML中,标签的分类是根据它们的行为和元素类型。`<img>`标签是行内元素,它不会影响到周围的块级元素的布局,而是直接插入到文档流中,所以选项(b)是正确的。 4. 布局理解中,块级元素如div、p等,其宽度确实受width、border、padding等属性影响,而背景属性(background)一般不影响元素的实际宽度。因此,选项(a)、(b)和(c)都是正确的描述。 5. 下列表达式的真假性: - (a) `null == undefined` 和 `Object.prototype` 相等,在JavaScript中,两者被认为是相等的,因此这个表达式是真。 - (b) `[1,2,3].splice(1,1,1)` 删除了索引为1的元素,数组变为 `[1,1,3]`,所以与 `[2]` 不等,表达式为假。 - (c) `let Mi = new Function(); Mi.__proto__.__proto__ == Object.prototype` 是正确的,因为Function构造函数创建的函数原型链最终指向Object.prototype。 - (d) `'1' === true`,在JavaScript中,字符串'1'和布尔值true不相等,所以表达式为假。 6. 说法正确的是: - (a) `display:none;` 隐藏元素的同时不保留物理空间,与 `visibility:hidden;` 的效果一致,两者都有隐匿元素的视觉效果,但前者不占位。 - (b) `visibility:hidden;` 仅隐藏元素,但元素占用空间。 - (c) 错误,`visibility:hidden;` 不会触发reflow和repaint,只有当元素可见性改变时才会。 - (d) 与(a)相同,两者有本质上的区别。 7. 清除浮动的方法: - (a) 使用`<div style="clear:both;"></div>`可以清除浮动。 - (b) 父元素设置`overflow: hidden;`也能清除浮动,因为它隐藏了超出内容区域的部分。 - (c) 父元素设置浮动是增加浮动元素,不是清除浮动。 - (d) `clearfix`类是一种常用的CSS技巧,用于处理浮动元素造成的布局问题。 8. 实现图形验证码的错误做法包括: - (a) 图形验证码应独立发送,不能包含在HTML代码中发送给客户端。 - (b) 文本字符串不应直接返回给用户,这会暴露验证码。 - (d) 图形验证码应与登录表单分开,确保安全。 这些题目涵盖了C++编程、TCP/IP协议、HTML标签特性、CSS布局、JavaScript表达式判断、CSS布局管理以及Web开发中的图形验证码实现。