天天看点

亚信科技2019届实习生招聘笔试题(前端)

亚信来我们学校宣讲,让我们做了笔试题,我选择了前端方向,下面是我的试题整理还有我的答案(不一定正确)以及知识点整理,如果有错误请大神们指正。这份笔试题涉及到了HTML CSS JavaScript jQuery 数据结构 前端工具,其实都是比较基础的题目,当然有一部分知识我确实不是很清楚,所以也写不出很好的解析,这部分以后一定会来更新补充。

1.这段代码输出什么
    if (new Boolean(false)) {
	console.log('True');
    }else{
	console.log('False');
    }
           
 A.True
 B.False
           

答案:A.True

解析:涉及到逻辑环境中的自动类型转换

a. 当数字在逻辑环境中执行时,会自动转为布尔类型。 0/-0和NaN会自动转为false,其余数字都被认为是true b.当字符串在逻辑环境中执行时,也会被转为布尔类型。空字符串会被转为false,其它字符串都会转为true c.当undefined和null在逻辑环境中执行时,都被认为是false d.对象在逻辑环境中执行时,只要当前引用的对象不为空,都会被认为是true e.使用包装类实例的时候,引擎只会判断其引用是否存在,不会判断内部的值(对于Boolean类,有一个特别需要注意的是,当传入一个字符串时,它不会去解析字符串内部的值,而是做个简单地判断,只要不是空字符串,都会被认为是true) 具体可见文章:https://www.cnblogs.com/liuhe688/p/5918589.html

2.c的值是什么?
    var a = function(){
	this.b = 1;
    }
    var b = function(){
	var b = new a().b;
	return 5 + b;
    }
    var c = b();

           
    A.5
    B.null
    C.代码运行时会报错
    D.6
    E.undefined
           

答案:D.6

解析:这题我还没怎么弄懂,再去看看预编译 全局 this部分的知识点以后再来答好了,有大神解析的话就更好了

3.怎样读取一个字符串的第一个字符?
           
A.data.charAt(1);
B.data.charAt(0);
C.data.slice(1);
D.data.substr(0);
E.data.substring(1);
           

答案:B.data.charAt(0);

解析:charAt() :返回指定位置的字符;

         语法:stringObject.charAt(index)

         注意:字符串中第一个字符的下标是0.如果参数index不在0与string.length之间,该方法将返回一个空字符串。

         slice() :提取字符串的某个部分,并且以新的字符串返回被提取的部分;

         语法:stringObject.slice(start, end)

         注意: slice(start从该位开始截取, end截取到该位不包括该位) ,start和end可以为负,在数组中同样适用  

         substr() :在字符串中提取从start下标开始的指定数目的字符;

         语法:stringObject.substr(start, length)

         注意: substr不建议使用(ECMAscript中未标准化),参数start中包括start指的该字符,当length不填时,默认截取到字符串的结尾;

         subString() :提取字符串中指定下标间的字符

         语法:stringObject.subString(start, end)

         注意: subString(start从该位开始截取, end截取到该位不包括该位) ,start和end不可以为负,长度为end-start,当end 不填时,默认截取到字符串的结尾;

         总结:slice()和subString()都是通过下标来截取字符串,但slice参数可以为负数,substr()是通过长度来截取字符串。

4.x的值是什么?
  var x = "1" + 2 + 3;
           
A.语句会报错
B.123
C.15
D.6
           

答案:B.123

解析:JavaScript中 +运算符 用于把文本值或者字符串变量连接起来

5.下面哪个String原型方法的入参是正则表达式?
           
A.charCodeAt()
B.search()
C.indexOf()
D.All of these
           

答案:B.search()

解析:charCodeAt() 与 charAt() 类似,不过charCodeAt()是返回指定位置的字符的Unicode编码

         search() :用于检索字符串中指定的子字符串,或者正则表达式,返回第一个匹配到的子串的起始位置

         语法:stringObject.search(regexp)

         indexOf() :返回某个指定的字符串值在字符串中首次出现的位置

         语法:stringObject.indexOf(searchvalue, fromindex)

         注意:该方法对大小写敏感;从头到尾开始检索,若没有检索到,则返回-1;

6.x的值是什么?
var str = "What is this";
var x = str.search("is");
           
A.4		B.7		C.6		D.5		E.1
           

答案:D.5

解析:见第五题解析

7.下面哪一个函数声明是正确的?
           
A.function myFunc(arg1,arg2) 
B.function myFunc(arg1,arg2) {}
C.func myFunc(arg1 as string, arg2 as int) {}
           

答案:B.function myFunc(arg1,arg2) {}

解析:JavaScript是弱类型语言,变量定义中不需要使用到string int等等;

8.____操作符返回一个字符串,标识它所操作对象的类型
           
A.Type 		B.typeof 	C.TypeOf 	D.getType 	E.typename
           

答案:B.typeof

解析:typeof操作符返回一个字符串,表示未经计算的操作数的类型,其余选项不存在

9.操作符“&”是:
           
A.赋值操作符		B.位移操作符		C.位于操作符		D.条件操作符
           

答案:C.位于操作符

解析:&表示and,是一个位操作符,类似的还有 |;

10.有a,b两个数组,下面哪个选项可以把a,b合成一个新数组
var a = ["a", "b", "c"];
var b = ["d", "e", "f"];
           
A.全不正确
B.var c = a.push() + b.push(); 
C.var c = a.concat(b); 
D.var c = a.join(b); 
           

答案:C.var c = a.concat(b);

解析:push():在数组最后一位添加数据,可以直接添加多位,改变原数组,返回新的长度;

         所以答案B中c=6;

         concat():连接两个或两个以上数组,不改变原数组,返回一个新的数组,参数可以是值也可以是数组;

         join():不改变原数组,把数组中的所有元素放入一个字符串,由传入的参数进行分割,若忽略该参数,那么用","进行分割

         所以答案D中c="ad,e,fbd,e,fc"      

11.关于下面的代码,哪个选项说明是正确的?
function test(){
    var foo = bar = 5;
}
test();
           
A.报SyntaxError
B.foo和bar都是全局变量
C.foo和bar是局部变量
D.foo是局部变量,bar是全局变量
           

答案:D.foo是局部变量,bar是全局变量

解析:和预编译有关,到时候新写一篇

12.执行下面的语句后,x等于什么?
           
var x = 1 == '1';
A.1		B.undefined		C.false 	 D.1(字符)    	  E.true
           

答案:E.true

解析:和数据类型转换有关,过两天整理完了以后专门写一篇。

1.URL的中文名称是“统一资源定位符”
A.对		B.错
           

答案:A.对

解析:Uniform Resource Locator

2.定义表元的HTML是
A.<tr>
B.<td>
C.<table>
           

答案:C.<table>

解析:表元的意思即为表格的单元,所以为<table>

         <tr>:表格的行

         <td>:每行中的若干单元格

         <th>:表格的表头,大多数浏览器会把它设置为粗体居中的文本

3.下面关于新样式对话框的说法错误的是:
A.在样式表中自定义的元素样式不可以在整个HTML中被调用
B.可以选择Use CSS Selector(CSS给定的选择用样式)
C.可以选择Redefine HTML Tag(HTML标签选择器)
D.可以选择Make Custom Style(自定义样式)
           

答案:A.在样式表中自定义的元素样式不可以在整个HTML中被调用

解析:Dreamweaver中的操作,不太懂

4.第四题漏截图找不到了
           
5.若要是设计网页的背景图像为bg_360ds.jpg,以下标记中正确的是
A.<body image="bg_360ds.jpg">
B.<body background="bg_360ds.jpg">
C.<body bjround="bg_360ds.jpg">
           

答案:B.<body background="bg_360ds.jpg">

6.不属于按钮对象的属性的是
A.status表示该对象的status属性
B.value表示该对象的value属性
C.form表示该对象的form属性
D.type表示该对象的type属性
E.name表示该对象的name属性
           

答案:A.status表示该对象的status属性

解析:<button>属性见下:

亚信科技2019届实习生招聘笔试题(前端)
7.HTML文档中,哪里可以引用外部CSS样式表
A.在<head>中
B.在<footer>中
C.在HTTP headers中
D.在<body>中
           

答案:A.在<head>中

解析:CSS的三种引用方式:

1.行内样式 <div style="width:100px"></div>
2.内嵌式
	<head>
	    <style>
		    .wrapper{width:100px;}
	    </style>
	</head>
	<body>
	    <div class="wrapper"></div>
	</body>		
3.外联式
	<head>
	    <title></title>
	    <link rel="stylesheet" href="demo/demo.css" target="_blank" rel="external nofollow" >
	</head>
           
2.CSS样式,font-family属性用来做什么
A.指定字体颜色
B.告诉你跟字体相关的东西
C.指定用什么字体
D.制定字体大小
           

答案:C.指定用什么字体

解析:font属性

  • font-style:字体样式(标准、斜体等)
  • font-weight:字体粗细
  • font-size/line-height:字体大小
  • font-family:字体系列
3.CSS样式,下面哪一个元素能够达到最大宽度,且前后各有一个换行
A.Square Element
B.Block Element
C.Box Element
D.Side Element
           

答案:B.Block Element

解析:块级元素block:a. 独占一行,其宽度自动填满其父元素宽度

                                b.能够达到最大宽度,前后各有一个换行

                                c.可以包含行内元素和块级元素

                                d.可以通过css改变宽高

        (div p ul li ol form address)

          行级元素、内联元素 inline:

                 a.不会独占一行,相邻的行内元素会排列在同一行,直到一行排不下才会换行,内容决定元素所占位置

                 b.不能包含块级元素

                 c.不能改宽高

         (span strong em a del)

           行级块元素 inline-block:

                  a.内容决定大小

                  b.可以改宽高

4.哪个答案最好地描述了CSS规则:a{text-decoration:none}
A.它是无效的
B.链接没有下划线
C.段落的文字将被隐藏
D.it's an anchor with no ship
           

答案:B.链接没有下划线

5.CSS样式,边距:10px 20px 40px 30px; 哪一个是底边距
A.10px;        B.20px;        C.30px;        D.40px;
           

答案:C.30px;

解析:

亚信科技2019届实习生招聘笔试题(前端)
6.CSS样式,下面哪个答案与这个语句的效果一致:h1{font-family:sans-serif;}h2{font-family:sans-serif;}h3{font-family:sans-serif;}
A.h1,h2,h3{font-family:sans-serif;}
B.h*{font-family:sans-serif;}
C.这些都不对
D.h1 h2 h3{font-family:sans-serif;}
           

答案:A.h1,h2,h3{font-family:sans-serif;}

7.CSS样式,声明区域的开始字符和结束字符是什么
A.用{开始,用}结束
B.用{开始,用)结束
C.用"开始,用"结束
D.用#开始,用#结束
           

答案:A.用{开始,用}结束

8.CSS样式表文件的缺省扩展名是什么
A、 .css 	B、 .main 	C、 .style 	  D、 .styles
           

答案:A. .css

解析:缺省扩展名的意思就是默认扩展名

1.通过下面的哪些方法可以获取页面的html元素(多选)
A.document.querySelector
B.document.getElementById
C.document.querySelectorAll
D.document.getElementByClassName
           

答案:ABCD

解析:JS获取DOM元素的方法(8种)

  1. 通过ID获取(getElementById)
  2. 通过name属性(getElementsByName)
  3. 通过标签名(getElementsByTagName)
  4. 通过类名(getElementsByClassName)
  5. 获取html的方法(document.documentElement)
  6. 获取body的方法(document.body)
  7. 通过选择器获取一个元素(querySelector)
  8. 通过选择器获取一组元素(querySelectorAll)
2.JSON对象obj有属性a,下面获取属性正确的是(多选)
A. obj['a']		B. obj{a}		C. obj.a 	  D.obj('a')
           

答案:A. C

解析:JSON访问对象值的两种方式:1.点号.    2.中括号[]

3.DOM事件流:将事件分为三个阶段:捕获阶段、目标阶段、冒泡阶段,这三者的执行顺序是
A.捕获阶段、目标阶段、冒泡阶段
B.捕获阶段、冒泡阶段、目标阶段
C.冒泡阶段、捕获阶段、目标阶段
D.冒泡阶段、目标阶段、捕获阶段
           

答案:A.捕获阶段、目标阶段、冒泡阶段

解析:

亚信科技2019届实习生招聘笔试题(前端)
4.下列表达式最后打印结果是
for (var i = 0; i < 5; i++) {
    (function(i){
	setTimeout(function(){
		console.log(i);
	},1000);
    })(i)
}
A.每隔一秒依次打印0,1,2,3,4
B.每隔一秒依次打印5,5,5,5,5
C.依次打印5,5,5,5,5
D.依次打印0,1,2,3,4
           

答案:D.依次打印0,1,2,3,4

解析:涉及到闭包的问题。到时候单独写一篇

1.在jQuery中,有以下代码
    $(".btn").click(function(){
	var json = [
	    {"S_Name":"周颜", "S_Sex":"男"},
	    {"S_Name":"周颖", "S_Sex":"女"}
	];
	$.each(json,function(index, s) {
	    alert(s.S_Name + "," + s.S_Sex);	--语句1
	});
    );
A.语句1会被执行1次
B.$.each()函数的用法有误
C.此代码不会正常运行
D.语句1会被执行2次
           

答案:D.语句1会被执行2次

解析:我还不是很懂。。。

2.请看下列html代码:
    <ul id="u_item">
        <li>item1</li>
	<li>item2</li>
	<li>item3</li>
    </ul>
使用jQuery计算<li>的个数,下列代码正确的是:
A.var $obj = $('li'); alert($obj.length);
B.var $obj = $('#li'); alert($obj.length);
C.var $obj = $('#li'); alert($obj.length());
D.var $obj = $('ul li'); alert($obj.length());
           

答案:A.var $obj = $('li'); alert($obj.length);

3.哪一个可以作为串联式jQuery命令的示例
A. $("box").fadeOut().fadeIn()
B. $("<#box>").fadeOut().fadeIn()
C. $(#box).fadeOut().fadeIn()
D. $("#box").fadeOut().fadeIn()
           

答案:D. $("#box").fadeOut().fadeIn()

4.在jQuery中,函数()能够实现元素显示和隐藏的互换
A. fade()	B.hide()	C.show()	D.toggle()
           

答案:D.toggle()

1.webpack的热更新会不会刷新浏览器
A.会			B.不会
           

答案:B.不会

解析:暂时还没有接触到webpack,不懂,以后再来补充吧。。

2.下面对于前端构建工具gulp.js的理解正确的是
A.Gulp遵循CommonJS规范,并且遵循代码优于配置策略
B.Gulp.js是基于Node.js构建的
C.Gulp.js利用Node.js强大的流,不需要往磁盘中写中间文件,可以快速构建项目并减少频繁的IO操作,更快地完成构建
D.以上三者都是
           

答案:D.以上三者都是

解析:暂时还没有接触到gulp.js,不懂,以后再来补充

1.以下答案中,有关ICMP最不正确的是
A.如果一个ICMP包被清除,另一个新的ICMP包就会产生
B.ICMP被IP数据包封装
C.ICMP的主要功能是用于路由器和服务器间的错误通知
D.ICMP是网络控制消息协议的缩写
           

答案:A.如果一个ICMP包被清除,另一个新的ICMP包就会产生

解析:ICMP消息被封装在IP数据包内,通过IP传送的ICMP消息主要是涉及错误操作的报告和回送给源节点的关于IP数据包处理情况的消息;

          ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

2.TCP连接释放过程,叙述不正确的是:
A.释放连接采用了改进的三次握手机制
B.当一方释放连接后另一方即不能继续发送数据
C.只有双方均释放连接后,该连接才被释放
D.通过设置FIN来表示释放连接
           

答案:B.当一方释放连接后另一方即不能继续发送数据

解析:

对于一个已经建立的连接,TCP使用改进的三次握手来释放连接(使用一个带有FIN附加标记的报文段)。TCP关闭连接的步骤如下: 第一步,当主机A的应用程序通知TCP数据已经发送完毕时,TCP向主机B发送一个带有FIN附加标记的报文段(FIN表示英文finish)。 第二步,主机B收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是先向主机A发送一个确认序号ACK,同时通知自己相应的应用程序:对方要求关闭连接(先发送ACK的目的是为了防止在这段时间内,对方重传FIN报文段)。 第三步,主机B的应用程序告诉TCP:我要彻底的关闭连接,TCP向主机A送一个FIN报文段。 第四步,主机A收到这个FIN报文段后,向主机B发送一个ACK表示连接彻底释放。

1.n个顶点的生成树有几条边
A.n-1  	B.n/2 	 C.n 	D.n+1
           

答案:A.n-1

解析:关于生成树的概念可以看看这个,相对比较通俗,https://blog.csdn.net/qq_33060405/article/details/78536847

2.用单循环链表示队列,正确的说法是
A.可设一个头指针使入队、出队都方便
B.无论如何,只可能使入队方便
C.必须设头尾指针才能使入队、出队都方便
D.可设一个尾指针使入队、出队都方便
           

答案:D.可设一个尾指针使入队、出队都方便

解析:不明白,数据结构没学好,只能以后补充了。