百度智能云前端开发内推面试

记一次惨不忍睹的面试。发现自己可能真的是简历有问题啊 ,自己的能力还达不到人家要求的那个vue水平,上次飞猪也是面了好多vue的题,今天智能云几乎全都是vue的问题啊

面试官:我来自我介绍一下我们部门···balalala```请介绍下你自己

我:智慧党建App 项目,用的是vue来进行界面设计的·······(上来就是项目)

面试官:那这个项目的主要内容你介绍下,以及你所做的工作

我:视频会议等··

面试官:视频会议是怎么实现的

我:这是后台的工作··我只负责app的前端页面啊(心里一万头草泥马····)

面试官:那好,我看到你还有两个项目··

我:····(胡乱说一通)

1,编码题1  var arr=[1,2,3,4,2,2],找出这个数组中出现次数最多的元素,输出该元素,并且将这些元素的下标都输出出来

function  search(arr) {
    var str=arr.join('');
    var res=[];
    var max=0;
    var index;
    for(var i=0;i<str.length;i++){
        var num=str.split(str[i]).length-1;
        if(num>max){
            max=num;
            index=i;
        }
    }
    for(var i=0;i<str.length;i++){
        if(str[i]==arr[index]){
            res.push(i);
        }
    }
   console.log(arr[index]);
    console.log(res)
}

2,,vue组件传值:父组件--->子组件  子组件--->父组件  子组件---子组件?     

扫描二维码关注公众号,回复: 2798540 查看本文章

 父组件向子组件传值:

    1)子组件在props中创建一个属性,用来接收父组件传过来的值;

    2)在父组件中注册子组件;

    3)在子组件标签中添加子组件props中创建的属性;

    4)把需要传给子组件的值赋给该属性

  子组件向父组件传值:

    1)子组件中需要以某种方式(如点击事件)的方法来触发一个自定义的事件;

    2)将需要传的值作为$emit的第二个参数,该值将作为实参传给响应事件的方法;

    3)在父组件中注册子组件并在子组件标签上绑定自定义事件的监听。

 子组件与子组件相互传值:

    第一步:借助中央事件总线:在外部新建一个js文件,取名Bus.js,可放在assets文件夹目录下。

    第二步:两个组件作为子组件被同一个父组件所引用,在同一个页面显示。    

               第三步:两个兄弟组件之间的语法

组件1需要定义一个发送数据的方法,此处sendMsg是定义在此的方法,页面点击时候触发此函数,函数主体,通过Bus中央事件总线用$emit发送一个send事件,事件的功能就是传送一个this.a++的数据,区分sendMsg和send,前者是当前页面的点击事件,后者是发送出去,需要其他组件监听的事件。

组件2在组件2事先定义一个变量,在生命周期为created的时候,通过Bus中央事件总线用$on监听组件1中发送的send事件,用一个带参数的回调函数,接收穿过来的值,参数即为传的值 ,把值赋值给当前组件的变量。

3,vue数据双向绑定的原理?(https://www.cnblogs.com/sichaoyun/p/8406194.html 感谢实现丰盛博主)

4,当vue中的数据是对象时,怎么监听

5,浏览器从发送请求一直到整个页面的渲染是怎么实现的?

6,js中实现异步的方式?(答案:https://www.cnblogs.com/zuobaiquan01/p/8477322.html 感谢zuobanquan博主)

    回调函数,事件监听,发布/订阅,promise

7,编码题2 var arr=[1,[2,[3,4]]] 将这个数组中的所有的数都平摊开来(放在一个数组里)

var res=[];
function get(arr) {
    for(var i=0;i<arr.length;i++){
        if(arr[i] instanceof Array){
            get(arr[i]);
        }else {
            res.push(arr[i]);
        }
    }
    return res;
}
var arr=[1,[2,[3,4]]];
console.log(get(arr));

猜你喜欢

转载自blog.csdn.net/L_SS133/article/details/81261126