美文网首页
2018 cvte 线上笔试总结

2018 cvte 线上笔试总结

作者: ilgb | 来源:发表于2018-03-10 23:56 被阅读0次

    刚刚完成了cvte的线上笔试,趁热做一下总结。文章将从下面几个方面进行讲述。
    1.总体体会。
    2.涉及的陌生知识点的总结。
    3.面试心得总结。

    总体体会

    总的来说,面试的题目难度还是可以接受,不过涉及的知识面有点广,所以对于比较陌生的知识点可能把握的不是很好。笔试选择题涉及到CSS(定位,Dom操作,隐藏), JS(原型 proto),闭包,异步(async 和 await), ES6(生成器),算法(主要有插排和快排,环形队列),计算机网络(很简单,就考了个分层),正则表达式。编程题一道是数组操作,一道是包装localStorage使其存储具备生命期,难度适中。

    涉及到陌生知识点总结

    1__proto__: 关于 __proto__ 描述直接看这里
    主要是理解两点:一是__proto__ 本质是一个访问器,即具有get和set方法;二是其指向问题: 'to the value of its constructor’s "prototype" ' (指向其构造函数的prototype)。下面通过几个例子说明一下。

    var f = new F(); 
    //于是有
    f.__proto__ === F.prototype //true
    //又因为
    F.prototype === o;//true
    //所以
    f.__proto__ === o;
    
    let p = {
        a: function () {
            console.log('aaa');
        }
    };
    shape.prototype.__proto__ = p;//说明其具有set方法,`__proto__`对应constructor的prototype,即shape.prototype.constructor.prototype=>shape.prototype,所以方法a就是shape.prototype.a,显然可以被new shape出的示例访问。
    
    let circle = new shape();
    circle.a();//aaa
    console.log(shape.prototype === circle.__proto__);//true
    
    1. asyncawait:需要注意一下几个方面。我们将通过例子一一讲述。
      async是异步函数声明的标志,如果把整个函数打印出来,将显示函数的所有代码。
    function resolveAfter2Seconds() {
      return new Promise(resolve => {
        setTimeout(() => {
          resolve('resolved');
        }, 2000);
      });
    }
    
    var a = async function asyncCall() {
      console.log('calling');
     var result =  await resolveAfter2Seconds();
    
      // expected output: "resolved"
    };
    console.log(a);
    //async function asyncCall() {
    //  console.log('calling');
    // var result =  await resolveAfter2Seconds();
    
     // // expected output: "resolved"
    //};
    

    调用async函数时返回一个Promise对象。

    function resolveAfter2Seconds() {
      return new Promise(resolve => {
        setTimeout(() => {
          resolve('resolved');
        }, 2000);
      });
    }
    
     async function asyncCall() {
      console.log('calling');
     var result =  await resolveAfter2Seconds();
    
      // expected output: "resolved"
    };
    var a = asyncCall();
    console.log(a);//[obeject promise]
    

    await 会使asnyc暂停执行,等待 await 部分执行完毕返回结果,所以一般而言await后面接异步执行函数,这个函数的输出结果要及时反馈出来。当然await后面也可以不接异步函数。

    function resolveAfter2Seconds() {
      return new Promise(resolve => {
        setTimeout(() => {
          resolve('resolved');
        }, 2000);
      });
    }
    
    async function asyncCall() {
      console.log('calling');
      var result = await resolveAfter2Seconds();
      console.log(result);
      // expected output: "resolved"
    }
    
    asyncCall();//calling(2s后)resolved,可以看出如果需要在下面引用到resolveAfter2Seconds的执行结果,await是非常方便的操作的。
    如果删去await,将会看到result 为 [object Promise],而不是函数执行结果的返回值。
    

    面试心得

    总体来讲,编程题难度不大,而且第一道题还是leetcode上一道题的简化版。继续做leetcode 吧。其次,mdn 要多看看,特别是javascript核心部分,还有CSS定位部分,以及DOM操作部分。基础的数据结构和算法也是很重要的,也要作为复习重点。

    以上。

    相关文章

      网友评论

          本文标题:2018 cvte 线上笔试总结

          本文链接:https://www.haomeiwen.com/subject/epnbfftx.html