深圳市易佰网络科技有限公司(套题)
| 选择题 | 填空题 | 问答题 | 编程题 | 试题难度 | 
|---|---|---|---|---|
| 0 | 0 | 10 | 0 | 一般 | 
问答题
- 1、在这个项目中这个轮播你是怎么实现的,原生的你是怎么去做的?
- 项目中的轮播需要自己结合自己的项目来讲解 - 原生的轮播 - 有一个放置图片列表的块级元素,放置所有的图片,我这里使用的是横向的列表;他的父元素为一个展示块,宽高为一张图片的宽高,利用overflow:hidden属性,每次只展示一张图片,隐藏其他图片,再用js控制图片列表定时或者其他方式左移右移即可实现简单的轮播了 
- 2、es6你在平时工作中用的最多的新特性?/ es6新特性
- 在项目中使用es6新特性的地方还是挺多的 - 使用export导出公共函数,变量,在需要的地方,使用import导入,这个在封装组件和js库用的很频繁。 - 使用let 关键字声明一个具有块级作用域的变量; - 使用const关键字定义一个常量; - 像解构赋值、箭头函数、展开运算符、模板字符串、Promise都是有用到,应用这些新技术,让开发更加的高效 
- 4、用const声明一个数组和一个对象,如果后面对它进行操作会报错吗?为什么
- 不会报错 - const声明的值是基础数据类型(Number,String,Boolean),那么这个变量的值就不可以改变。如果值是复合类型(主要是对象和数组),那么里面的属性或者每一项则可以改变。因为const只能保证这个指针是固定的,但是指向的数据结构则不可以控制。 
- 6、ajax原生的步骤?
- 利用JS原生对象XmlHttpRequest,在不刷新页面的情况下,可以向服务器发送请求,请求回来的数据可以是XML或文本,将请求回来的数据通过DOM操作显示在页面上。具体的步骤是这样的 - 1.创建XHR(XmlHttpRequest的缩写)对象,这里存在兼容性的问题,IE通过ActiveXObject对象创建,其它的通过XmlHttpRequest对象创建。 - 2.使用open()方法建立连接,有三个参数,第一个参数是请求类型,通过是get或post请求,第二个是请求的地址,第三个是否为异步请求,true表示异步,false表示同步。 - 3.使用send()发送请求,接一个参数,需要发送的的信息,以URL参数的形式拼接,如果没有为null - 4.数据响应,这个阶段涉及到的API主要有responseText,responseXML,status(状态码),对于异步请求还会涉及到readyState和状态改变事件onreadystatechange。但读取状态改变时会触发这个事件。读取状态有五个阶段 - 0:未初始化,还没有调用open方法 - 1:启动,调用了open方法,但还没有调用send方法 - 2:发送,调用了send方法,但还没有响应 - 3:接收,收到了部分响应的数据 - 4:完成,收到全部响应的数据 - status表示http的状态码,表示读取的信息是否正确,200表示成功,500表示服务器错误,304表示资源没有改变,使用缓存的数据。 
- 7、浏览器兼容问题?
- 普及:浏览器的兼容性问题,往往是个别浏览器(没错,就是那个与众不同的浏览器)对于一些标准的定义不一致导致的。俗话说:没有IE就没有伤害。 - 1.Normalize.css - 不同浏览器的默认样式存在差异,可以使用 Normalize.css 抹平这些差异。 - 2.html5shiv.js - 解决 ie9 以下浏览器对 html5 新增标签不识别的问题。 - 3.respond.js - 解决 ie9 以下浏览器不支持 CSS3 Media Query 的问题。 - 4.picturefill.js - 解决 IE 9 10 11 等浏览器不支持 <picture> 标签的问题 
- 8、路由改变url会刷新页面吗,为什么,它的原理是什么?
- 前端路由是直接找到与地址匹配的一个组件或对象并将其渲染出来。改变浏览器地址而不向服务器发出请求有两种方式: - 1. 在地址中加入#以欺骗浏览器,地址的改变是由于正在进行页内导航 - 2. 使用H5的window.history功能,使用URL的Hash来模拟一个完整的URL。 - 当打包构建应用时,Javascript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。 
- 9、vuex状态管理的原理?
- Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式;集中存储和管理应用的所有组件状态。 - 理解:以上这4个词是我们理解的关键。状态:什么是状态,我们可以通俗的理解为数据。Vue只关心视图层,那么视图的状态如何来确定?我们知道是通过数据驱动,这里的状态管理可以简单理解为管理数据。集中存储:Vue只关心视图,那么我们需要一个仓库(Store)来存储数据,而且是所有的数据集中存储,视图和数据就可以分析。管理:除了存储,还可以管理数据,也就是计算、处理数据。所有组件状态:所用的组件共用一个仓库(Store),也就是一个项目只有一个数据源(区分模块modules)。 - 总结:Vuex就是在一个项目中,提供唯一的管理数据源的仓库。 
- 10、你在平时编码都有规范的习惯吗?
- 首先你要知道规范的作用 - 1.提高代码可读性 - 2.统一全局,加强团队合作 - 3.减少维护成本 - 4.规范的代码有助于审查代码 - 5.养成好习惯,有助于程序员个人能力的成 - 可以从以下回答 - 1.HTML规范 - HTML标签语义化,减少无意义的标签 - 标签名小写,正确闭合标签 - 使用HTML5的doctype来启用标准模式,<!DOCTYPE html> - 在html标签上设置正确的lang属性,一般是<html lang="zh-CN"> - 属性值必须用双引号包围 - 在meta里声明字符编码为utf-8 - 遵守正交原则,写HTML时不要想CSS的写法 - 使用外链的CSS和JavaScripe,属性type可以省略 - 尽量用alt标签去描述图片 - 习惯性书写注释,方便日后维护 - IE 支持通过特定的 <meta>标签来确定绘制当前页面所应该采用的 IE 版本。除非有强烈的特殊需求,否则最好是设置为 edge mode,从而通知 IE 采用其所支持的最新的模式。如<meta http-equiv="X-UA-Compatible" content="IE=Edge"> - HTML 属性应当按照以下给出的顺序依次排列,确保代码的易读性。 - CSS规范 - tab缩进用两个空格代替 - css的:后加个空格,{前加个空格 - 每条声明后都加分号; - 换行,而不要放在同一行 - 颜色用小写,能缩写就缩写,如#fff - 小数不用写前缀,0.5s可写成.5s,0不用加单位 - 尽量缩写,如margin:5px 10px 5px 10px;可写成margin:5px 10px; - 缩写属性,如font: 16px/1.5 palatino, georgia, serif; - class命名的语义化 - 语义化优先 - 基于功能命名、基于内容命名、基于表现命名 - 简略、明了、无后患 
 
                            