深圳市易佰网络科技有限公司(套题)
选择题 | 填空题 | 问答题 | 编程题 | 试题难度 |
---|---|---|---|---|
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命名的语义化
语义化优先
基于功能命名、基于内容命名、基于表现命名
简略、明了、无后患