面试常见问题

1,使用正则表达式,“zhang-san” => ‘san-zhang’。

    'zhang-san'.replace(/(\w+)-(\w+)/,'$2-$1');

2,生产环境如何解决跨域问题?

  1,Nginx 代理转发,2,后端程序代理,3,CORS 跨源资源共享。4,jsonp

  本地代理配置:Vue或者react 的脚手架config中的http-proxy配置;

  匹配所有以/xxx/api开头的,修改target的代理地址为http://11.11.11.11:1111,如下

  '/xxx/api/': {
    target: 'http://11.11.11.11:1111',
    changeOrigin: true,
    cookieDomainRewrite: {
    '*': 'localhost',
    },
  },

3,get,post 缓存问题及清除get请求缓存的方法。

   get请求一般只是向服务器请求数据(这是约定而成的),为了更快完成操作,会在本地缓存数据以便将来再次访问;

   而post请求一般用于update/submit更新提交数据,所以此时缓存数据就显得很蠢了;

   所以才有了: get会缓存数据,而post不缓存数据 的说法。

   清除方法: 在get请求时增加一个随机后缀,用来区分每一次访问的URL地址。

         在后端程序中设置不进行缓存。 

4,数据结构类型(8大分类)

  数组,栈,链表,队列,树,图,堆,散列表

5,堆,栈的理解。

  栈(stack):先进后出(FILO)。比如: var a = 123; 等基本类型的变量

  堆(heap):先进先出(FIFO)(完全二叉树)。比如: var person1 = { a : 123 }; 

  var person3 = '{}';var person4 = '{}'; console.log(person3 == person4); // true

  var person1 = {};var person2 = {}; console.log(person1 == person2);  // false

  引用类型时按引用访问的,换句话说就是比较两个对象的堆内存中的地址是否相同,那很明显,person1和person2在堆内存中地址是不同的。

  堆栈本身就是栈,只是换了个抽象的名字。

6,Vue 和 React 异同。

7,react比Vue多了哪个生命周期函数?作用是什么?

  shouldComponentUpdate() 在react中这是一个性能优化的关键点。当父组件改变,全部子组件都会重新渲染,可以通过该钩子返回false来阻止渲染,此处还有另外一个方法pureComponent,详细参考React官方文档。

  而在Vue中,默认是做了此优化。

8,加签验签。

posted @ 2019-10-29 16:22  永颜  阅读(138)  评论(0编辑  收藏  举报