用友2018校招web前端笔试题(三)

1.以下可以被子元素继承的属性是 ()

font-size
margin
padding
color

解题关键:一般和字体相关的属性都可以继承。css属性一旦继承了不能被取消,只能重新定义样式。

 

 

 

 

 

首先我们来看一下css优先级

!important > 行内样式 > ID选择器 > 类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性。

常用的css可继承的属性:

font:组合字体

font-family:规定元素的字体系列

font-weight:设置字体的粗细

font-size:设置字体的尺寸

font-style:定义字体的风格

text-indent:文本缩进

text-align:文本水平对齐

line-height:行高

color:文本颜色

visibility:元素可见性

光标属性:cursor

常用的css不可继承的属性:

display:规定元素应该生成的框的类型

text-decoration:规定添加到文本的装饰

text-shadow:文本阴影效果

white-space:空白符的处理

盒子模型的属性:width、height、margin 、border、padding

背景属性:background

定位属性:float、clear、position、top、right、bottom、left、min-width、min-height、max-width、max-height、overflow、clip、z-index

2.以下哪些存储方式可以实现浏览器内多个标签页之间通信?()

正确答案: A C D 你的答案: A B (错误)

localStorage
sessionStorage
cookie
indexedDB

 

cookie 一般由服务器生成,可设置失效时间。如果在浏览器端生成Cookie,默认是关闭浏览器后失效

localStorage 永久保存

indexedDB 用于客户端存储大量结构化数据,indexedDB就是一个非关系型数据库

sessionStorage 仅在当前会话下有效,关闭页面或浏览器后被清除

 

cookie是什么

是浏览器储存页面的一种方式。存储在用户本地,一般会随着浏览器的每次请求发送到服务端。

举个例子:第一次打开某网站是英文的,然后我们点击翻译成了中文之后,下次再打开这个浏览器,就直接是中文的了。因为中文的设定随着请求一起发到浏览器去了。

 

区别 local Storage: local Storage 的生命周期是永久的,关闭页面或浏览器之后 local Storage 中的数据也不会消失。local Storage 除非主动删除数据,否则数据永远不会消失

session Storage: session Storage 的生命周期是仅在当前会话下有效。session Storage 引入了一个“浏览器窗口”的概念,session Storage 是在同源的窗口中始终存在的数据。只要这个浏览器窗口没有关闭,即使刷新页面或者进入同源另一个页面,数据依然存在。但是 session Storage 在关闭了浏览器窗口后就会被销毁。同时独立的打开同一个窗口同一个页面,session Storage 也是不一样的

cookie: cookie生命期为只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。 存放数据大小为4K左右, 有个数限制(各浏览器不同),一般不能超过20个。缺点是不能储存大数据且不易读取

 

3.以下属于JS基本数据类型的选项是 ()

正确答案: A B D 你的答案: A B (错误)

undefined
number
interface
symbol

JavaScript 数据类型

值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。

引用数据类型:对象(Object)、数组(Array)、函数(Function)。

注:*Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值*

 

4.有关会话跟踪技术描述正确的是 ()

正确答案: A B C D 你的答案: A B C (错误)

Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端

关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期

隐藏表单域在客户端不可见,但可以获取到此表单的属性值

在禁用Cookie时可以使用URL重写技术跟踪会话

5.属于HTML5标签语意化的元素有 ()

正确答案: A D 你的答案: A C D (错误)

article、footer
block
section、banner
header、nav

 

 

 

6.关于JavaScript里的xml处理,以下说法正确的是 ()

正确答案: B C D 你的答案: B C D (正确)

Xml是种可扩展标记语言,格式更规范,是作为未来html的替代

Xml一般用于传输和存储数据,是对html的补充,两者的目的不同

在JavaScript里解析和处理xml数据时,因为浏览器的不同,其做法也不同

在IE浏览器里处理xml,首先需要创建ActiveXObject对象

1.什么是 XML?

XML 指可扩展标记语言(EXtensible Markup Language XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 标签没有被预定义。您需要自行定义标签。 XML 被设计为具有自我描述性。 XML 是 W3C 的推荐标准


2.XML 与 HTML 的主要差异

XML 不是 HTML 的替代。

XML 和 HTML 为不同的目的而设计:

XML 被设计为传输和存储数据,其焦点是数据的内容。

HTML 被设计用来显示数据,其焦点是数据的外观。

HTML 旨在显示信息,而 XML 旨在传输信息。

 

7.关于页面响应式布局说法正确的是 ( )

正确答案: B C 你的答案: B C (正确)

使用HTML5的语义化标签
可以使用bootsrap框架
可以利用media query媒体查询功能
以上说法都正确

语义化标签的作用:

  • 语义化标签具有可读性,使得文档结构清晰

  • 浏览器便于读取,有利于SEO优化

  • 展现在页面中时,用户体验好

  • 便于团队开发和维护

bootstrap确实不一定做出来的是响应式的网站,但是人家的开发初衷是响应式。

 

 

 

 

8.下面关于this对象的理解正确的是 ()

正确答案: A B D 你的答案: A B D (正确)

在不手动改变this指向的前提下,this总是指向函数的直接调用对象
如果有new关键字,this指向new出来的那个对象
this总是指向函数的间接调用者
IE中attachEvent中的this总是指向全局对象window

1.在事件中,this指向触发这个事件的对象(特殊的是:IE中的attachEvent中的this总是指向全局对象window)。

2.this总是指向函数的直接调用者(而非间接调用者)

3.new后面就是构造函数,构造函数中的this指向的就是当前的对象

 

9.关于HTTP状态码说法正确的是 ()

正确答案: C D 你的答案: C D (正确)

404 表示正常返回信息
302 表示永久性重定向
503 表示服务器端暂时无法处理请求
403 表示禁止访问

HTTP状态码含义:

3** 重定向,要进一步操作才能完成请求

  • 301:moved permanently 资源永久移动

  • 302:moved temporarily 资源临时移动

  • 304:not modified 资源未被修改

4** 客户端错误

  • 400:bad request 请求出现语法错误

  • 401:unauthorized 未经授权

  • 403:forbidden 服务器收到请求,但拒绝提供服务

  • 404:not found 资源不存在

5** 服务器错误

  • 500:internal server error 服务器出现错误

  • 503:service unavailable 服务器超负荷或停机维护,暂时不能处理客户端请求

10.Node.js中使用NPM的说法正确的是 ()

正确答案: A D 你的答案: A D (正确)

可以安装和管理项目的依赖
不可以通过package.json文件来管理项目信息,配置脚本
不能够指明依赖项的具体版本号
可以通过package.json指明项目依赖的具体版本

npm是一个连接js和操作系统的桥梁,也叫做Node包管理器(Node Package Manager )。通常下载Node.js时,npm便会包含在内。通过npm install命令(简写 npm i )安装各种包(或框架)。

npm install 包名  

下载成功后的各种依赖包会放在文件夹node_modules下,也同时生成并更新一个package.json文件(记录了各种依赖包的名称name、包的版本号version等其它信息)。

 

11.请列出 input 标签的 type 属性都可以设置哪些值(至少四种)。

你的答案

password 、name、id、email

参考答案

答案:text、radio、checkbox、hidden、range、reset、file、button、submit、password、image、color、date、datetime-local、month、week、time、email、number、search、tel、url ( 任意四种即可 )

 

12.数据和 UI 的双向绑定和单向绑定有什么区别。

你的答案

双向绑定实现动态更新

参考答案

单向绑定使得数据流也是单向的,对于复杂应用来说这是实施统一的状态管理的前提;双向绑定在一些需要实时反应用户输入的场合 (表述合理即可)。(比如输入框)

 

13.说说 React 中 state 和 props 的区别是什么。

参考答案

state是管理组件内部的一些数据,props则是从父组件传递过来的数据或者属性

 

14.JavaScript 中改变 this 关键字指向都有哪些方式。

call、apply、bind、箭头函数,将对象上的函数赋值到其他变量中(this 丢失)。

 

15.编写 JavaScript 函数

其唯一的输入参数为URL字符串,函数返回一个对象。返回对象中的属性包括 URL 中的全部查询字符串(Query)字段。例如,输入字符串 “https://www.yonyoucloud.com?name=yonyou&location=beijing” 返回 { name: “yonyou”, location: “beijing” }

var url =
'https://www.yonyoucloud.com?name=yonyou&location=beijing';
    var obj = parseQueryString(url);
    function parseQueryString(argu){
          var str = argu.split('?')[1];
          var result = {};
          var temp = str.split('&');
          for(var i=0; i<temp.length; i++)
{
               var temp2 = temp[i].split('=');
               result[temp2[0]]
= temp2[1];
        }
         return result;
    }

 

16.请基于以下代码实现功能:点击 1000 个 span 元素中的任意一个,将元素内的值 alert 弹出即可。

<div id=“box”>
  <span> 1 </span><span> 2
</span><span> 3 </span>…<span> 1000 </span>
</div>

参考答案

var box = document.querySelector('#box');
box.addEventListener('click',
function(e){
var target = e.target;
if(target.nodeName.toLowerCase()=== 'span'){
alert(target.innerText);
}
}, false);

 

17.请封装 JavaScript 中的数组内置方法sort(),实现快速降序排序,如: var arr = [45, 32, ‘12’, 39, ‘59’];

参考答案

function
compare(v1, v2) {
if (Number(v1) > Number(v2))
{
return -1;
} else if (Number(v1) < Number(v2))
{
return 1;
} else {
return 0;
}
}
arr.sort(compare);