jquery和vue的区别
jquery是通过选择器查找和操作dom,是单向绑定,需要手动操作dom
vue 是数据响应式,当数据发生变化时自动更新视图,是双向绑定,不需要操作dom
性能优化
路由懒加载 图片懒加载 长列表动态加载
第三方模块按需引入
使用keep-alive缓存组件
压缩图片 雪碧图
防抖节流运用
减少HTTP请求数
精简代码
数组和链表
数据类型有哪些
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。
引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)
typeof 判断基本类型
instancesof 判断对象是否为某一数据类型的实例
{} instancesof Object
function(){} instancesof Function
construstor 不能判断Null undefined 其他可以
(1).constructor === Number
Object.prototype.toString.call('1')
数组去重
axios get和post的区别
get 参数会显示在网址后面,适合接收数据
axios.get('url?id=123')
axios.get('url',{
params: {id:123}
}).then(function(response){
console.log(response)
})
post 更安全,发送的数据量大,适合发送数据
axios.post('url',{
id:123,name:'haha'
}).then(function(response){
console.log(response)
})
created和mounted的区别
created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。
mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。
promise的状态
待定(pending):初始状态,既没有被兑现,也没有被拒绝。
已兑现(fulfilled):意味着操作成功完成。
已拒绝(rejected):意味着操作失败
computed和watched的区别
深拷贝和浅拷贝
for in, for of, forEach的区别 哪个可以拿到原型上的属性
for in 遍历对象的属性,包括原型链上的属性,如果不想遍历原型链中的属性,可以使用 obj.hasOwnProperty(key)进行过滤
for of 遍历可迭代对象,获取值。 数组、字符串、set、map
forEach是数组的一个方法,遍历数组
跨域 什么情况会产生跨域,如何解决
处于浏览器同源策略的限制,同源策略会阻止一个域的js脚本和另一个域的内容进行交互,所谓同源就是两个页面具有相同的协议、主机和接口号
当浏览器与后端服务器地址不一样就会存在跨域问题。
1.jsonp
2.cors跨域资源共享 服务器端进行配置,前端直接请求服务器
3.中间代理器代理
4.vue的反向代理跨域解决
插槽
插槽就是子组件中的提供给父组件使用的一个占位符,父组件在这个占位符中可以填充任何模板代码
路由模式
history hash
ES6有哪些新特性
箭头函数和普通函数的区别
语法简洁:箭头函数使用箭头(=>)来定义函数,语法更加简洁,省略了function关键字和大括号。例如,(x) => x * 2是一个简单的箭头函数表示的函数表达式,相当于普通函数function(x) { return x * 2; }。
this绑定:箭头函数没有自己的this绑定,它会继承外层作用域的this值。而普通函数的this值是根据调用时的上下文决定的。
arguments对象:箭头函数没有自己的arguments对象,它会继承外层作用域的arguments对象。普通函数则会创建自己的arguments对象。
构造函数:箭头函数不能用作构造函数,不能使用new关键字实例化对象。普通函数可以被用作构造函数创建对象实例。
箭头函数没有原型属性(prototype)。
箭头函数不能通过call()、apply()或bind()方法来改变this的指向。
MVVM是什么
MVVM是Model-View-ViewModel的简写。即模型-视图-视图模型。
【模型】指的是后端传递的数据。
【视图】指的是所看到的页面。
【视图模型】mvvm模式的核心,它是连接view和model的桥梁。
它有两个方向:
一是将【模型】转化成【视图】,即将后端传递的数据转化成所看到的页面。实现的方式是:数据绑定。
二是将【视图】转化成【模型】,即将所看到的页面转化成后端的数据。实现的方式是:DOM 事件监听。
这两个方向都实现的,我们称之为数据的双向绑定。
二叉树
封装过哪些组件
flex用过哪些属性
flex-direction 子元素排列方式
justify-content 主轴对齐方式
align-items 子项在交叉轴上的对齐方式
flex-wrap 子项是否换行
子组件如何修改props传过来的值
vue的生命周期
ajax请求一般在哪个生命周期里面