2021大场面试题(十)

1.已知数据格式,实现一个函数fn找出链条转给你所有的父级 id

const value = '112';
const fn = (value) => {}
fn(value); //输出 [1, 11, 112]
const data = [{
    id: '1',
    name: 'test1',
    children: [{
            id: '11',
            name: 'test11',
            children: [{
                    id: '111',
                    name: 'test111',
                },
                {
                    id: '112',
                    name: 'test112',
                }
            ]
        },
        {
            id: '12',
            name: 'test12',
            children: [{
                    id: '121',
                    name: 'test121',
                },
                {
                    id: '122',
                    name: 'test122',
                }
            ]
        }
    ]
}]

2.给定两个大小为m 和 n 的有序数组nums1 和 nums2。请找出这两个有序数组的中位数。要求算法的事件复杂度为O(log(m+n))。

示例1:

nums1 = [1, 3], nums2 = [2]; 中位数是 2.0

示例2:

nums1 = [1, 2], nums2 = [3, 4]; 中位数是(2+3)/ 2 = 2.5;

3.vue 在 v-for时每项元素绑定事件需要事件代理吗?为什么

4.模拟实现一个深拷贝,并考虑对象相互引发作用以及Symbol拷贝的情况

5.介绍下前端加密的常见场景和方法

6. React 和 Vue 的diff 时间复杂度从O(n^3) 优化 到 O(n),那么O(n^3) 和 O(n) 是如何计算出来的?

7.写出如下代码的打印结果

function changeObjProperty(o) {
    o.siteUrl = 'http://www.baidu.com';
    o = new Object();
    o.siteUrl = 'http://www.google.com'
}

let webSite = new Object();
changeObjProperty(webSite);
console.log(webSite.siteUrl);

8.编程算法题

用JavaScript 写一个函数, 输入 int 型返回整数逆序后的字符串。如:输入整形1234, 返回逆序字符串 ‘4321’。

要求:必须使用递归函数调用,不能用全局变量,输入函数必须只有一个参数传入,必须返回字符串。

9. 请写出如下代码的打印结果

function Foo() {
  Foo.a = function() {
    console.log(1);
  }
  this.a = function() {
    console.log(2);
  }
}

Foo.prototype.a = function() {
  console.log(3)
}

Foo.a = function() {
  console.log(4)
}

Foo.a();
let obj = new Foo();
obj.a();
Foo.a();
上一篇:Python -- 装饰器


下一篇:SystemVerilog学习笔记3——接口、采样、测试、调试