# examanswer **Repository Path**: csyn/examanswer ## Basic Information - **Project Name**: examanswer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-29 - **Last Updated**: 2021-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 1、v-show和v-if的区别? v-show是通过操作css的display属性来实现元素的显现和隐藏, v-if是直接销毁和重构来实现元素的显现和隐藏。 # 2、Vue中父子组件之间的参数传递如何做到的? 父组件向子组件传值: 1)在子组件的props中创建一个属性,用来接受父组件传过来的值 2)在父组件中注册子组件 3)在子组件的标签上添加props中添加的属性 4)将父组件要传递给子子组件的值赋值给该属性 子组件向父组件传值: 1)在子组件中以某种方式的方法触发一个自定义事件 2)将要传递的值作为$emit的第二个值,该值作为实参传递给要触发的事件 3)在父组件中注册子组件,并子组件的标签上添加自定义事件的监听 # 3、什么是mvvm? 是model-view-viewmodel的缩写,是一种思想。model是一种数据模型,可以在model中进行数据的操作和修改,view是ui模型,它负责将数据模型显示出来。View-Model是同步view和model的一个对象。 # 4、列举5个常见的vue指令? v-on、v-bind、v-show、v-if、v-html、v-text、v-cloak、v-for # 5、Get和Post的区别,如何使用post? 1)get会将提交的数据放在浏览器的url中,以?分割地址和参数,参数之间使用&连接,post将提交的数据放在http包中。 2)get请求提交的数据最大为1024kb,但是这样说不太准确,因为不同的浏览器,不一样,而post理论上没有上限。 3)post的安全性要比get高。此安全性非彼安全性,主要是为了防止登录页面的缓存,还有浏览器的历史记录里可能有账号密码,这样别人就能轻而易举的拿到账号密码了。 4)机制不同,get是一种想服务器发送数据的请求,而post是一种向服务器提交数据的请求,在form表单中,method默认为get,实质上它们只是机制不同,并不是一个发,一个取。 # 6、分别介绍普通函数中的this和箭头函数中的this? 普通函数中的this: 在普通函数中,this代表总是它的调用者,默认情况下this指向window,严格模式下,没有直接的调用者中this指向undefined,使用通过call,apply,bing绑定的,this指向绑定的对象 箭头函数的this: 箭头函数没有this,箭头函数this默认指向定义时的对象,而不是执行时的对象。简单来说,箭头函数不会自己创建this,它只会从自己作用域的上一级继承this。定义它时的环境可能是window,也可能是其它的。 # 7、var、let、const之间的区别? var声明全局变量 let声明的变量只在自己所在的代码块内有效 const一个只读的常量,一旦声明,常量的值就无法改变 # 8、什么是盒子模型? 在浏览器中,元素有几部分组成,元素的内容区域content,元素的内边距padding,元素的边框border,元素的外边距margin四部分组成。在这几部分中,有的用来显示内容,有的只是用来分割相邻的区域。这四部分共同构成了css元素的盒子模型。 9、行内元素有哪些?块状元素有哪些?空元素有哪些? 行内元素:a,b,span,input,textarea,img,label,select,strong,em,button 块状元素:div,bloakquote,ul,li,dl,dd,dt,p,h1-h6 空元素:br,hr,meta,link,input,img # 10、css实现水平居中? 一道经典的问题,实现方法有很多种,以下是其中一种实现: HTML结构: ```
``` CSS: .wrapper{position:relative;} .content{ background-color:#6699FF; width:200px; height:200px; position: absolute; //父元素需要相对定位 top: 50%; left: 50%; margin-top:-100px ; //二分之一的height,width margin-left: -100px; } # 11、简述一下src和href的区别? href指向网络资源所在的位置,建立和当前文档或当前元素之间的链接,常用的元素有link,a src指向静态资源的位置,被指向的资源会被嵌入到该文档的标签上,在请求src资源时,会将资源下载并应用到该文档内,例如,js脚本,img,iframe标签等,当浏览器处到该元素时。会暂停其他资源的下载,直到该资源下载完毕,所以一般把js脚本放在末尾。而不是头部。 # 12、简述同步和异步的区别? 同步是阻塞模式,异步是非阻塞模式。 同步是当执行某个请求时,如果该请求需要等待一段时间,那么它会一直等下去,直到该请求执行完毕,才会继续向下执行。 异步是指进程不需要一直等下去,可以跳过需要等待的请求,当该请求有消息通知时,再回来执行它。 # 13、px和em的区别? px和em都是长度单位。区别是,px是固定长度,计算起来比较容易,而em并不是固定的,并且em会继承父元素的字体大小。 浏览器的默认高度都是16px,所以未经调整的浏览器都符合1em=16px。 # 14、使用递归的方式写1-100求和? function add(num1,num2){ let num = num1+num2 if(num2+1>100){ return num }else{ return add(num,num2+1) } } let sum=add(1,2) # 15、浏览器的内核分别是什么? ​ 1.Trident(IE内核)2.Gecko(Firefox内核) ​ 3.Webkit(Safari内核)4.Chromium(谷歌浏览器) # 16、怎样添加、移除、移动、复制、创建和查找节点? 1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元素 createTextNode() //创建一个文本节点 2)添加、移除、替换、插入 appendChild() //添加 removeChild() //移除 replaceChild() //替换 insertBefore() //插入 3)查找 getElementsByTagName() //通过标签名称 getElementsByName() //通过元素的Name属性的值 getElementById() //通过元素Id,唯一性 # 19、你所知道的http的响应码及含义? 1xx(临时响应) 100: 请求者应当继续提出请求。 101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备进行切换。 2xx(成功) 200:正确的请求返回正确的结果 201:表示资源被正确的创建。比如说,我们 POST 用户名、密码正确创建了一个用户就可以返回 201。 202:请求是正确的,但是结果正在处理中,这时候客户端可以通过轮询等机制继续请求。 3xx(已重定向) 300:请求成功,但结果有多种选择。 301:请求成功,但是资源被永久转移。 303:使用 GET 来访问新的地址来获取资源。 304:请求的资源并没有被修改过 4xx(请求错误) 400:请求出现错误,比如请求头不对等。 401:没有提供认证信息。请求的时候没有带上 Token 等。 402:为以后需要所保留的状态码。 403:请求的资源不允许访问。就是说没有权限。 404:请求的内容不存在。 5xx(服务器错误) 500:服务器错误。 501:请求还没有被实现。 # 17、说一下闭包? 实质是因为函数嵌套而形成的作用域链。 例如函数a中嵌套一个函数b,而函数b可以访问到函数a中的变量。可以使用闭包来实现一些功能,而不会污染全局变量。 # 18、export和export default区别? export分别暴露,export default默认暴露 export可以先定义再输出,也可以直接输出。 默认暴露只能有一个,所以export default在同一模块中只能出现一次,并且默认暴露不能先定义再输出,只能直接输出 # 20、为什么使用v-for的时候需要添加key属性? 因为vue在添加dom的时候是根据新旧dom数据对比的,使用key属性来给每一个节点做一个唯一标识 # 21、computed和watch的区别和运用的场景? computed是计算属性,依赖其他属性的值,有缓存,只有当它依赖的属性值发生改变时,下一次获取的computed才会重新计算computed的值。 watch监听属性,没有缓存,更多的是观察者的角度,类似于某些数据的监听回调,每当监听的数据发生改变时就会调用监听的后续操作。如果想深度监听对象的属性的值,可以打开deep:true选项,这样便会对对象的每一项进行监听。