理论部分:

  1. 自我介绍
  2. 项目难点,我说的保存登录状态和ajax的异步请求
  3. cookie, sessionStroage, localStroage区别
  4. cookie, session你认为个人信息(姓名,地址,不考虑密码)应该存在cookie还是session?我说的cookie,因为经常会用到,但是可能有被窃听的风险,他问既然如此,为什么不放(vuex)?因为你只给了我两个选项。。(不好反驳)
  5. 异步相关,宏任务微任务,async,await,Promise
  6. 介绍HTTP?HTTP有几个版本,你用的是哪个版本?分别有什么变化,怎么实现?为什么?
  7. 三次握手,四次挥手,这些过程分别发送什么,为什么要发?
  8. 项目中跨域怎么实现?原理?
  9. js基础类型?判断类型?除了isArray怎么判断是不是数组?我说的原型链。他说如果伪造一个类我怎么判断?
  10. 对象的生成方法(我就说了字面量和构造函数)
  11. 浏览器缓存有了解吗(没有)
  12. 设计模式了解吗(没有)
  13. TypeScript有了解吗(我只会用一点点,不懂原理)
  14. 前端优化有了解吗?(比如说首屏加载速度?我说的懒加载)
  15. 前端安全呢?
  16. PC的扫码登录功能,怎么返回状态,扫码中,已登录。我说向服务端发起轮询请求,但是这样应该会很麻烦,他说目前很多都是这么做的。

代码部分:

作用域:(没答对)

{
    let sum = 2;
}
console.log(sum);
var sum = 0;
let i;
for(i=0; i<2; i++) {
    for(let j=0; j<2; j++) {
        setTimeout(() => {
            console.log(i,j);
        }, 10)
    }
}

异步:(答对了)

setTimeout(() => {
    console.log(1);
}, 0);

console.log(2);

async function async1() {
    console.log(3);
    await async2();
    console.log(4);
}

async function async2() {
    setTimeout(() => {
        console.log(5);
    }, 0);
}

async1();

Promise.resolve().then(() => {
    console.log(6);
});

new Promise(() => {
    console.log(7);
}).then(() => {
    console.log(8);
});

手写代码:(理解错题意)

LeetCode原题-有效的括号

/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function(s) {
  const n = s.length;
  const map = new Map([
    [')','('],
    [']','['],
    ['}','{']
  ])
  const stack = [];
  for(let ch of s) {
    const find = map.get(ch);
    if(find) {
      if(stack[stack.length-1] !== find) {
        return false;
      }
      else {
        stack.pop();
      }
    }
    else {
      stack.push(ch);
    }
  }
  return !stack.length;
};

反问:

Q:你对我接下来的学习有什么建议吗?

A:你可以多上网搜一下前端方向需要的知识,不能仅仅只是会用,要多挖掘他的原理。

Q:我知道今天的表现很不好,你能评价一下吗?

A:不方便透露

Q.E.D.


我还有很多想要完成的梦想。