1229面试题——原型链、文档流

320 阅读1分钟

Coding

  1. 合并两个有序数组,计算其中位数
// [1,2,4,5,6,8,11] m
// [2,5,6,8,10] n
// 1.偶数个时,取中间两个数的平均值
// 2. 时间复杂度不超过O(m+n)

function merge(arr1, arr2) {
    let newArr = [];
    let i=0; 
    let j=0;
	
    // 按顺序加入
    while (i !== arr1.length && j !== arr2.length) {
        if (arr1[i] < arr2[j]) {
            newArr.push(arr1[i])
            i++;
        } else {
            newArr.push(arr2[j]);
            j++;
        }
    }
	
    // 处理未加完的
    while (i !== arr1.length) {
        newArr.push(arr1[i])
        i++;
    }

    while (j !== arr2.length) {
        newArr.push(arr2[j])
        j++;
    }
    
    // 求中位数
    let len = i+j;
    if (!(len % 2)) {
        return (newArr[len/2] + newArr[len/2 - 1]) / 2
    } else {
        return newArr[parseInt(len/2)]
    }
}

JS

  1. 原型与原型链 下面三个分别与什么相等
function foo(){}
const bar = new foo()
bar.__proto__ === foo.prototype
foo.__proto__ === Function.prototype
foo.prototype.constructor === foo


HTML/CSS

  1. 一个div的高度100px是被其内容撑开的,如果为其添加样式height:50px;overflow:hidden,会触发回流重绘吗?如果其先有样式position:absolute,再添加上述样式会触发哪些?

    • 元素的可见尺寸发生变化,因此会发生回流重绘
    • 当为绝对定位时,脱离普通文档流,宽度也变为由其内容撑开, 同样可见尺寸发生变化会触发回流重绘
  2. 文档流有哪几种

    • 普通文档流
    • 浮动文档流
    • 定位文档流
  3. 脱离普通文档流有哪些方式

    • 浮动
    • 绝对定位
    • 固定定位