前端面试题

1、说一下闭包
               一句话可以概括:闭包就是能够读取其他函数内部变量的函数,或者子函数在外调用,子函数所在的父函数的作
       用域不会被释放。

2、eval 是做什么的
      它的功能是将对应的字符串解析成 JS 并执行,应该避免使用 JS,因为非常消耗性能(2次,一次解析成 JS,一次执行)

3、介绍一下 promise
             Promise 是一个对象,保存着未来将要结束的事件,她有两个特征: 1、对象的状态不受外部影响,Promise 对象代表
      一个异步操作,有三种状态,pending进行中,fulfilled 已成功,rejected 已失败,只有异步操作的结果,才可以决定当
      前是哪一种状态,任何其他操作都无法改变这个状态,这也就是 promise 名字的由来2、一旦状态改变,就不会再变,
      promise 对象状态改变只有两种可能,从pending 改到fulfilled 或者从 pending 改到 rejected,只要这两种情况发生,
      状态就凝固了,不会再改变,这个时候就称为定型 resolved.

4、ES6 箭头函数的特性
     ES6 增加了箭头函数,基本语法为
     let func = value => value;
     相当于
     let func = function (value) {
     return value;
     };
     箭头函数与普通函数的区别在于:
     1、箭头函数没有 this,所以需要通过查找作用域链来确定 this 的值,这就意味着如果箭头函数被非箭头函数包含,
           this 绑定的就是最近一层非箭头函数的this,
     2、箭头函数没有自己的 arguments 对象,但是可以访问外围函数的arguments 对象
     3、不能通过 new 关键字调用,同样也没有 new.target 值和原型

5、rgba()和 opacity 的透明效果有什么不同?
          rgba()和 opacity 都能实现透明效果,但最大的不同是 opacity 作用于元素,以及元素内的所有内容的透明度,
     而 rgba()只作用于元素的颜色或其背景色。(设置 rgba 透明的元素的子元素不会继承透明效果!)

6、请以自己理解讲解js堆和栈
      堆是用来存放引用数据类型,例如对象,数组,函数
      栈是用来存放基本数据类型,变量和引用数据类型的地址值 ; 体积小,数据经常变化

7、Vuex是什么?怎么使用?
     Vuex是实现组件全局状态(数据)管理的一种机制,可以方便实现组件数据之间的共享;Vuex集中管理共享的数据,
易于开发和后期维护;能够高效的实现组件之间的数据共享,提高开发效率;存储在Vuex的数据是响应式的,能够实时
保持页面和数据的同步;
     Vuex重要核心属性包括:state,mutations,action,getters,modules.

      state
      Vuex 使用单一状态树,即每个应用将仅仅包含一个store 实例,但单一状态树和模块化并不冲突。存放的数据状态,
不可以直接修改里面的数据。

      mutations
      mutations定义的方法动态修改Vuex 的 store 中的状态或数据。

      action
      actions可以理解为通过将mutations里面处里数据的方法变成可异步的处理数据的方法,简单的说就是异步操作数据。
view 层通过 store.dispath 来分发 action。

      getters
      类似vue的计算属性,主要用来过滤一些数据。

      modules
      项目特别复杂的时候,可以让每一个模块拥有自己的state、mutation、action、getters,使得结构非常清晰,方便管理。

8、router和route的区别
      router为VueRouter的实例,相当于一个全局的路由器对象,里面含有很多属性和子对象,例如history对象。经常用
  的跳转链接就可以用this.$router.push,和router-link跳转一样。

  route相当于当前正在跳转的路由对象。。可以从里面获取name,path,params,query等

9、Vue组件通信有哪些方式
      1.父传子:props
      父组件通过 props 向下传递数据给子组件。注:组件中的数据共有三种形式:data、props、computed

       2.父传子孙:provide 和 inject
       父组件定义provide方法return需要分享给子孙组件的属性,子孙组件使用 inject 选项来接收指定的我们想要添加在
      这个实例上的 属性;

       3.子传父:通过事件形式
      子组件通过 $emit()给父组件发送消息,父组件通过v-on绑定事件接收数据。

      4.父子、兄弟、跨级:eventBus.js
      这种方法通过一个空的 Vue 实例作为中央事件总线(事件中心),用它来(e m i t ) 触 发 事 件 和 ( emit)触发事
      件和(emit)触发事件和(on)监听事件,巧妙而轻量地实现了任何组件间的通信。

      5.通信插件:PubSub.js

      6.vuex
      vuex 是 vue 的状态管理器,存储的数据是响应式的。只需要把共享的值放到vuex中,其他需要的组件直接获取使用
      即可;

10、vue中ref的作用是什么?
       作用一(基本用法):本页面获取dom元素
       作用二:获取子组件中的data
       作用三:调用子组件中的方法
       作用四:子组件调用父组件方法
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值