面试题整理

537 阅读2分钟

vue

1.computed和watch和methods和filters的区别和应用场景;
2.vue生命周期的理解;
3.vue间组件通信的方式,方式越多越好;
4.vue-router怎么传参,如何实现 path/:id/name?info=111&info2=222?
5.vue如何实现双向绑定的;
6.如何优化长列表数据:blog.csdn.net/lbPro0412/a…
7.async - await与promise的关系;

原文链接:caibaojian.com/asyncawait.…

  • async/await是写异步代码的新方式,以前的方法有回调函数和Promise。
  • async/await是基于Promise实现的,它不能用于普通的回调函数。
  • async/await与Promise一样,是非阻塞的。
  • async/await使得异步代码看起来像同步代码,这正是它的魔力所在
8.route和router的区别

router为VueRouter的实例,相当于一个全局的路由器对象,里面含有很多属性和子对象,

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

可以在任何组件内通过 router 访问路由器,也可以通过 route 访问当前路由

router.push、 router.replace 和 router.go 跟 window.history.pushState、 window.history.replaceState 和 window.history.go好像, 实际上它们确实是效仿 window.history API 的

9.使用promise.all返回值是什么? 其中有一个被 rejected,p的状态是什么?具体是怎么实现的?
Promise.all = function (promise) {
    return new Promise((resolve, reject) => {
        let index = 0
        let result = []
        if (promise.length === 0) {
            resolve(result)
        } else {
            function processValue(i, data) {
                result[i] = data
                if (++index === promise.length) {
                    resolve(result)
                }
            }
            for (let i = 0; i < promise.length; i++) {
                Promise.resolve(promise[i]).then((data) => {
                    processValue(i, data)
                }, (err) => {
                    reject(err)
                    return
                })
            }
        }
    })
}
10.vue中的scoped实现原理
11.HTTP缓存机制 no-store和no-cache的区别

no-cache 可以在本地缓存,可以在代理服务器缓存,但是这个缓存要服务器验证才可以使用
no-store 彻底得禁用缓冲,本地和代理服务器都不缓冲,每次都从服务器获取

12.为什么不能用index作为key?原理是什么
13.vuex严格模式是什么?

React

1.React 中 keys 的作用是什么?
2.传入 setState 函数的第二个参数的作用是什么?
3.React 中 refs 的作用是什么
4.react性能优化是哪个周期函数
5.React 中 setState 什么时候是同步的,什么时候是异步的
6.简述flux 思想

Flux 的最大特点,就是数据的"单向流动"。

用户访问 View View发出用户的 Action Dispatcher 收到Action,要求 Store 进行相应的更新 Store 更新后,发出一个"change"事件 View 收到"change"事件后,更新页面

JavaScript

1.看下面代码,给出输出结果,并使之输出0 - 9,写出你能想到的所有解法

for (var i = 0; i< 10; i++){ setTimeout(() => { console.log(i); }, 1000) }

2.事件捕获和事件冒泡顺序?事件委托原理?如何判断dom元素?