web前端线上笔试

感谢您能抽出时间来参加本次笔试,现在我们就马上开始吧!


1.1. CSS盒子模型包含哪些部分?


1.2. 指定了一个div的width和height实际指定的是哪部分的宽高?

    ____________
以下两个div,div1的margin-bottom是20px,div2的margin-top是30px,border和padding均为0,两个div的垂直距离是多少?

<div id="div1">

</div>

<div id="div2">

</div>

    ____________
请用div + CSS实现一个按钮(Button)组件?
    ____________



4.1. 请写出如下脚本执行之后的结果:

for (var i = 0; i < 3; i++) {

    setTimeout(function(){

  console.log(i);

 }, 1000);

}

console.log(i);



4.2. setTimeout可以保证代码在指定的时间延迟执行吗?浏览器中JavaScript的Event Loop(事件循环)是怎么样的?


    ____________
写一个按照下面方式调用都能正常工作的 sum 方法:

function sum() {

    // TODO

}

console.log(sum(2,3)); //输出: 5

console.log(sum(2)(3)); //输出: 5


    ____________
解释下面代码的输出, 若代码输出有报错,请指出如何修复报错代码:

var user = {

    count: 1,

    getCount: function() {

        return this.count;

    }

};

console.log(user.getCount()); //

var func = user.getCount;

console.log(func()); //


    ____________
function A(name) {

    this.name = name;

}

A.prototype.show = function() {

    console.log(this.name);

}

var a = new A("a"); // 1.


8.1. 对象a 中包含哪些属性?对象a的原型对象是什么? 原型对象中包含哪些属性?



8.2. 补全函数create, 使 b 的对象结构与 a 一致。

function create(ctor) {

    // TODO 2.

}

var b = creat(A, "a");



8.3. 请用原型链继承的方式实现函数 SubA, 使得SubA 继承 A。

function SubA(){

}


    ____________
9. 有以下两个已从小到大排序的正整数数组:

var a1 = [1, 2, 5, 7, 9, 13, ……];

var a2 = [3, 4, 9, 10, 15, ……]

请补全以下函数,使得函数返回一个合并后的从小到大排序的数组:

function mergeArray(a1, a2) {

// 勿使用javascript自带的sort函数

}

    ____________
请补全函数reverse,可以将输入的链表倒转,返回新列表的头节点

// 链表节点定义

function Node() {

    this.data = '';

    this.next = null;

}

// 入参是一个链表的头节点

function reverse(node) {

// TODO将输入的链表倒转

}


    ____________

9题 | 被引用4次

使用此模板创建