前端面试

今天和大家分享一下前端面试题,我这里也是汇总别人的,你想找什么样的公司就有什么样得面试题,有些大同小异,有些奇思妙想,BAT这种大公司不仅仅看看面试题就完事,知道自己在哪一层阶梯上选择合适的公司才是最好的,不可好高骛远,不仅进入公司,还要待得住才是最牛班的。上干货,比较杂(vue,react,html,js,css,jq,小程序,各种类库,项目实战流程,难点,性能优化,W3C标准,)【注意】:转化成自己的话再去描述给面试官

1.什么是vue生命周期 ?
vue实例从被创建到销毁的一系列过程就叫vue生命周期. 也就是从开始创建、初始化数据、编译模版、挂载DOM→渲染、更新、渲染、卸载等一系列过程。

2.axios的特点有哪些
axios是一个基于promise的HTTP库,支持promise的所有API
它可以拦截请求和响应
它可以转换请求数据和响应数据,并对响应回来的内容自动转换为json类型的数据
它安全性更高,客户端支持防御XSRF

3.vue父组件怎么给子组件传值?
父组件的数据要通过prop传到子组件

4.mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?
mvc和mvvm其实区别并不大。都是一种设计思想。主要就是mvc中Controller演变成mvvm中的viewModel。mvvm主要解决了mvc中大量的DOM 操作使页面渲染性能降低,加载速度变慢,影响用户体验。

区别:vue数据驱动,通过数据来显示视图层而不是节点操作。
场景:数据操作比较多的场景,更加便捷

5.vue的优点是什么?

      低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
      可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。
        独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计。
        可测试。界面素来是比较难于测试的,而现在测试可以针对ViewModel来写

6.组件之间的传值?
父组件与子组件传值
父组件通过标签上面定义传值
子组件通过props方法接受数据

      子组件向父组件传递数据
      子组件通过$emit方法传递参数

7.路由之间跳转
声明式(标签跳转) 编程式( js跳转)

8.vuex是什么?怎么使用?哪种功能场景使用它?
vue框架中状态管理。在main.js引入store,注入。新建一个目录store,….. export 。场景有:单页应用中,组件之间的状态。音乐播放、登录状态、加入购物车

9.vuex有哪几种属性?
有五种,分别是 State、 Getter、Mutation 、Action、 Module

10.v-show和v-if指令的共同点和不同点
v-show:指令是通过修改元素的display的CSS属性让其显示或者隐藏
v-if:指令是直接销毁和重建DOM达到让元素显示和隐藏的效果

11.如何让CSS只在当前组件中起作用
将当前组件的