欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

字节跳动2017前端工程师实习生笔试题 个人分析总结

程序员文章站 2022-06-09 10:27:40
...

写在前面:不是全部的笔试题!是部分题目和我个人总结的需要注意的地方!

一、选择题

下面哪些是HTML5 新增的表单元素?
A.datalist
B.optgroup
C.output
D.legend
答案:A C
解析:h5新增的表单元素:
datalist
Output
****** 加密: <****** name=“secutity” width=“300”/>

请选出所有的置换元素()
A.img
B.input
C.textarea
D.select
答案:A B C D
解析:置换元素(替换元素):
一个 内容 不受CSS视觉格式化模型控制CSS渲染模型并不考虑对此内容的渲染,且元素本身一般拥有固有尺寸(宽度,高度,宽高比)的元素,被称之为置换元素。替换元素就是浏览器根据元素的标签和属性,来决定元素的具体显示内容
HTML中的img、input、textarea、select、object都是替换元素

下列说法正确的是()
A.display: none;不为被隐藏的对象保留其物理空间;
B.visibility:hidden;所占据的空间位置仍然存在,仅为视觉上的完全透明;
C.visibility:hidden;产生reflow和repaint(回流与重绘);
D.visibility:hidden;与display: none;两者没有本质上的区别;
答案:A B
解析:display:none不保留空间,不显示,可以理解为看不见摸不着
visibility:hidden保留空间,仅仅是透明了。可以理解为看不见摸得着。
Repaints and reflows 重绘和重流
任何改变用于构建渲染树的输入信息的操作都能导致重流或者重绘,使用display: none隐藏一个DOM节点会导致重流和重绘,visibility: hidden则只会造成重绘,因为没有几何改变。
参考:重绘和重流

以下描述正确的是:
A.Http协议所使用的运输层协议是UDP
B.Https的端口号是443
C.TCP注重数据可靠性,UDP注重数据传输快
D.传输层提供端到端的可靠报文传递和错误恢复
答案:B C D
解析:
A.HTTP使用TCP(而不是UDP)作为它的支撑运输层协议。
B.HTTP的端口号是80,https的端口号是443
C D. OSI七层模型
7 应用层:允许访问网络资源。 通信单位:报文(指的是TCP/IP协议里广义的应用层 )
6 表示层:数据的转换,加密,压缩
5 会话层:建立,管理,终止会话
4 运输层:提供可靠的进程到进程的交付和差错恢复。
3 网络层:从源到终点传送分组,提供网络互联。通信单位 数据报
2 数据链路层:将比特组织成帧结构,提供逐跳交付。通信单位 帧
1 物理层:经过媒体传送比特
TCP与UDP
UDP( User Datagram Protocal, 用户数据报协议 ) 面向数据报的不可靠的 传输层通信协议。UDP不能保证可靠传输,也就更不能保证所发送的数据的到达顺序,它所实现的是尽最大的努力交付。
UDP可以支持一对一、一对多、多对一、多对多的通信。
UDP没有拥塞控制功能,它的发送速率不会随着网络出现的拥塞而降低,所以它的实时性较好
TCP( Transmission Control Protocol, 传输控制协议 )面向连接的、可靠的、基于字节流的传输层通信协议 。TCP协议保证可靠传输,也就是说发送的数据是什么样,接收的数据也是什么样。
一条TCP连接只能提供一对一的通信。
TCP协议提供拥塞控制功能,会在网络状况良好的情况下适当提高发送/接收速率,反之则适当降低发送/接收速率。
简而言之:tcp可靠,udp快

运行以下程序:

<script> 
  	 	 var m= 1, j = k = 0; 
    		function add(n) { 
        			return n = n+1; 
  			} 
   		 y = add(m); 
    		function add(n) { 
        			return n = n + 3; 
    		} 
	     z = add(m); 
</script> 

Y和z的值为:4 4
解析:js里面没有函数重载的概念,定义了两个同名函数后,后面的函数会覆盖前面的函数。所以, y = add(m)和z = add(m)调用的都是第二个函数。
这个地方还有一个知识点,大坑,js函数预编译问题。
js并非完全的按顺序解释执行,而是在解释之前会对Javascript进行一次“预编译”,在预编译的过程中,会把定义式的函数优先执行,也会把所有var变量创建,默认值为undefined,以提高程序的执行效率。
这块内容太多了,不多赘述,参考链接:预编译

二、编程题

1.现在有一个字符串,你要对这个字符串进行 n 次操作,每次操作给出两个数字:(p, l) 表示当前字符串中从下标为 p 的字符开始的长度为 l 的一个子串。你要将这个子串左右翻转后插在这个子串原来位置的正后方,求最后得到的字符串是什么。字符串的下标是从 0 开始的,你可以从样例中得到更多信息。

在之前的博文里:回文解码

(理解尚浅,如有不妥,欢迎指正)