前端开发一些常问的面试题

1.  你觉得的HTTP的状态码有哪些?仔细说明 1开头:(被接受,需要继续处理。)这一类型的状态码,代表请求已被接受,需要继续处理。 2开头 (请求成功)这一类型的状态码,代表请求已成功被服务器接收、理解、并接受 3开头 (请求被重定向)这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。 4开头:(请求错误)这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。 5开头:(服务器错误)这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。   具体: 200 OK 服务器成功处理了请求(这个是我们见到最多的) 304 Not Modified:服务端的资源与客户端上一次请求的一致,不需要重新传输,客户端使用本地缓存的即可 400 Bad Request:用于告诉客户端它发送了一个错误的请求 404 Not Found(页面丢失)未找到资源 500 Internal Server Error:服务器内部出现了错误.数据库问题 501 Internal Server Error服务器遇到一个错误,使其无法对请求提供服务

 

 

2.  ajax 异步请求数据的步骤? AJAX即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 Ajax的使用 (1)创建`XMLHttpRequest`对象,也就是创建一个异步调用对象. (2)创建一个新的`HTTP`请求,并指定该`HTTP`请求的方法、`URL`及验证信息. (3)设置响应`HTTP`请求状态变化的函数. (4)发送`HTTP`请求. (5)获取异步调用返回的数据. (6)使用JavaScript和DOM实现局部刷新.

 

 

3.  html5 和CSS3 新特性 html5 新特性 用于绘画的 canvas 元素 用于媒介回放的 video 和 audio 元素 对本地离线存储的更好的支持 localStorage&sessionStorage 新的特殊内容元素,比如 article、footer、header、nav、section 新的表单控件,比如 calendar、date、time、email、url、search css3 新特性 阴影 文本阴影text-shadow 盒子阴影 box-shadow 边框圆角 border-radius 边框图片boeder-image 过渡trasition animation动画 2D 3D动画 伪类选择器 first-child last-child nth-child(n) 背景: 背景大小 background-size 背景原点background-origin 多背景background: url() ,url(),url() 渐变 : 线性渐变:background-image:linear-gradient(渐变方向开始和结束状态,渐变范围(距离)) 径向渐变background-image:radial-gradient(圆点,开始、结束)       4.   如何使元素垂直水平居中?  1.弹性盒方法——flex布局 元素:display: flex;justify-content: center;align-items: center; 2.定位+transform: 父元素 position: relative      ;   子元素 position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%) 3.纯absolute 父元素 position: relative      ;   子元素 position: absolute;top: 50%;left: 50%; margin-left:-1/2子元素宽度; margin-top: -1/2子元素高度; 4.margin:auto+absolute 父元素 position: relative      ;   子元素 position: absolute;top: 0; left: 0; right:0; bottom:0;margin:auto 5.table-cell 父元素上一层:display table           ;     父元素: display: table-cell;vertical-align: middle;text-align: center;         ;          子元素:display: inline-block; 6.inlineblock法: 父元素: text-align: center;        line-height: 父元素高度          font-size: 0;            ;         子元素:display: inline-block;            background-color:yellow;              vertical-align:middle;       5.  简述一下你知道的有哪些ES6的新特性 Let const 结构赋值 箭头函数 字符串模板 class类 类。promise。箭头函数 解构赋值。let const   async await 1.箭头操作符(箭头函数) 2.类的支持(class) 3.字符串模板 4.参数结构 5.参数默认值,不定参数,拓展参数 6.let与const 关键字 7.模块 8.Promise     6.  变量提升如何产生? 将变量的声明提升到执行环境的最顶端 原理:JS引擎的工作方式是①先解析代码,获取所有被声明的变量;②然后在运行。也就是专业来说是分为预处理和执行两个阶段。 变量提升的定义:所有变量的声明语句都会被提升到代码头部,这就是变量提升。     7.  react 和 react-native 的 区别 React 是基础框架,是一套基础设计实现理念,开发者不能直接使用它来开发移动应用或者网页。 在React框架之上,发展出来的React Native可以用来开发移动应用,原生应用。   React Native产出的并不是“网页应用”, 或者说“HTML5应用”,又或者“混合应用”。 最终产品是一个真正的移动应用,从使用感受上和用Objective-C或Java编写的应用相比几乎是无法区分的。 React Native所使用的基础UI组件和原生应用完全一致。 你要做的就是把这些基础组件使用JavaScript和React的方式组合起来。   8.  react 路由中 如何 传递参数 如何在组件内部获取参数 问号拼接的:this.props.match.params 冒号拼接的:Location .search       9.  vue 属性 methods computed watch 这三个属性的区别  methods(方法): 只要进行调用就会执行,不管依赖的值有没有改变。无缓存。   computed(计算属性): 监听其所有依赖的变化,如果有变化会执行,没有变化不执行。有缓存,不用每次重新算。不支持异步。 详解=》在vue的 模板内({{}})是可以写一些简单的js表达式的 ,很便利。但是如果在页面中使用大量或是复杂的表达式去处理数据,对页面的维护会有很大的影响。这个时候就需要用到computed 计算属性来处理复杂的逻辑运算。 1.优点: 在数据未发生变化时,优先读取缓存。computed 计算属性只有在相关的数据发生变化时才会改变要计算的属性,当相关数据没有变化是,它会读取缓存。而不必想 motheds方法 和 watch 方法是否每次都去执行函数。 2.setter 和 getter方法:(注意在vue中书写时用set 和 get) setter 方法在设置值是触发。 getter 方法在获取值时触发。   watch(侦听属性): 观察某一个变量,发生变化会执行。支持异步。Vue 实例将会在实例化时调用 $watch(),遍历 watch 对象的每一个属性。 一个对象,键是需要观察的表达式,值是对应回调函数。值也可以是方法名,或者包含选项的对象。 小结: 1.主动调用的方法写在methods里,依据某些变量的更新进行某种操作用computed或者watch。 2.computed和watch:如果要异步,只能用watch。如果是计算某个值推荐用computed,比如购物车全选单选功能,购物车计算总价小计功能。       10.  vue如何实现自定义事件 我们知道,父组件是使用 props 传递数据给子组件,但如果子组件要把数据传递回去,应该怎样做?那就是自定义事件! 使用 v-on 绑定自定义事件 每个 Vue 实例都实现了事件接口(Events interface),即: 使用 $on(eventName) 监听事件 使用 $emit(eventName) 触发事件 Vue的事件系统分离自浏览器的EventTarget API。尽管它们的运行类似,但是$on 和 $emit 不是addEventListener 和 dispatchEvent 的别名。 另外,父组件可以在使用子组件的地方直接用 v-on 来监听子组件触发的事件。
上一篇:Vue进阶(幺肆捌):Vuex辅助函数详解


下一篇:Vue.js(五)计算属性及初识组件