1.vue项目是打包成一个js文件,一个css文件,还是多个文件
根据vue-cli脚手架规范,一个js文件,一个cs文件
2.简述ajax原理
AJAX全称(Async Javascript and XML),即异步的JavaScript 和XML是一种创建交互式网页应用的网页开发技术,可以在不重新加载整个网页的情况下,与服务器交换数据,并且更新部分网页
Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用JavaScript来操作DOM而更新页面
3.vue封装组件的过程
首先,使用Vue.extend()创建一个组件(或者创建一个新vue页面,通过import导入页面)
然后,使用Vue.component()方法注册组件
接着,如果子组件需要数据,可以在props中接受定义
最后,子组件修改好数据之后,想把数据传递给父组件,可以使用emit()方法
4.vue组件之间有几种通讯方式
1.vuex
2.eventBus
3.props/emit
4.$parent/$children
5.$attrs/$listeners
6.provide/inject
5.css水平,垂直居中的写法,请至少写出4种
水平居中如下:
行内元素: text-align: center
块级元素: margin: 0 auto
position:absolute +left:50%+ transform:translateX(-50%)
display:flex + justify-content: center
垂直居中如下:
设置line-height 等于height
position:absolute +top:50%+ transform:translateY(-50%)
display:flex + align-items: center
display:table+display:table-cell + vertical-align: middle;
6.说一下盒模型
所谓盒子模型(Box Model)就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器。每个矩形都是由元素的内容(content)、内边距(padding)、边框(border)和外边距(margin)组成。
标准盒子模型
width就是content的内容,盒子的宽度是 content + padiing + border
IE盒子模型
width是content + padding + border这是三部分的宽度,盒子的宽度就是width
7.说一下<label>标签的用法
<label> 标签为 input 元素定义标签(label)。
label 元素不会向用户呈现任何特殊的样式。不过,它为鼠标用户改善了可用性,因为如果用户点击 label 元素内的文本,则会切换到控件本身。
<label> 标签的 for 属性应该等于相关元素的 id 元素,以便将它们捆绑起来。
1. 在html中,<label>标签通常和<input>标签一起使用,<label>标签为input元素定义标注(标记)
2. 格式: <label for="关联控件的id" form="所属表单id列表">文本内容</label>
3.label标签中关于文件上传的妙用,可覆盖inputfile样式以及同样有上传功能
8.用js递归方式写1到100求和
(注意:递归简单来说就是函数自己调用自己。)
function fn1(n){
//跳出条件
if(n == 1) return 1
//逻辑 n+n-1 的和
return n+fn1(n-1)
}
console.log(fn1(100))
9.说一下事件代理
事件代理( Event Delegation ),⼜称之为事件委托。是 JavaScript 中常⽤绑定事 件的常⽤技巧。顾名思义,“事件代理”即是把原本需要绑定的事件委托给⽗元素,
让⽗元素担当事件监听的职务。事件代理的原理是DOM元素的事件冒泡。使⽤事件代理的好处是可以提⾼性能 ,可以⼤量节省内存占⽤,减少事件注册,⽐如在 table 上代理所有 td 的 click 事件就⾮常棒,可以实现当新增⼦对象时⽆需再次对其绑定
10.说一下继承的几种方式及优缺点
1. 原型链继承 优点:子类要继承自父类,则将父类的实例作为子类的原型实现继承。 缺点:1.原型继承无法传递参数2.给子类原型添加方法必须在子类原型替换之后
2. 借助构造函数 优点:在子类构造函数中调用父类构造函数。 缺点:1.子类无法访问到父类原型上的方法
3. 组合继承 优点:通过两种方式的优点组合使用两者。 缺点:1.父类被调用了两次,一次是为了实现属性继承,一次是为了实现方法继承。2.由于父类调用了两次,使得父类的属性会在子类实例上产生一份,并且在子类原型上再产生一份
4. 原型式继承 优点:为了不自定义类型也可以通过原型实现对象间信息的共享。 缺点:1.本质上,object()是对传入的对象执行了一次浅复制,由于浅复制只会对原始数据类型进行拷贝,对引用数值类型只是将内存地址进行拷贝
5. 寄生式继承 优点:创建一个实现继承的函数,在该函数内创建一个新对象,然后增强创建的对象,最后返回该对象。。 缺点:1.与原型式继承一样,存在引用类型值问题,同时寄生式继承中的增加方法时,是将方法挂载到实例上的,所以方法无法复用
6. 寄生组合式继承 优点:通过寄生式继承来继承父类原型,然后将返回的新对象赋值给子类原型。 缺点:1.这种方法只调用了一次父类,并且父类的属性不会像组合继承那样添加到子类的原型上去
(以上试题皆是我遇到的,答案可能错漏,建议有疑惑百度查一下)