记第一次面试

本文最后更新于 2024年4月9日 下午

字节 前端

  1. Vue.js 和传统编写HTML/JS 有什么区别?

  2. Vue.js 的响应式原理了解过吗?

  3. Vue.js 中 data属性中某个对象的深层次属性修改会被检测到更新吗?

  4. Vue.js 中数组元素变化,会不会检测到?

  5. Vue-Router 有几种Router?

  6. Hash 和 History 方式的Router有什么区别?

  7. 浏览器渲染界面的原理?调换其中style标签和script标签之后会发生什么?

  8. 那么这种现象有什么解决办法?

  9. SSR了解过吗?

  10. serviceworker知道吗?

  11. 两道基础题?

  12. 实现函数:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    /*
    sum(1,2,3)
    sum(1,2)(3)
    sum(1)(2)(3)
    */

    var func = function () {
    var sum = 0;
    var addValue = function () {
    for (var i = 0; i < arguments.length; i = i + 1) {
    sum += arguments[i];
    }
    this.sumOf = function () {
    return sum;
    }
    return addValue;
    }
    return addValue;
    }

第四范式 前端

  1. 讲一个你参与过的项目,遇到了什么技术难点是怎么解决的?

  2. 算法题:

    • 给出一个无序数组,要求将0放在数组首部,非0元素放在数组尾部,并且保证非0元素的顺序与原来一致。

    • 继续优化性能。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      var lst = [0, 8, 5, 0, 134, 0, 3, 6, 5, 0, 7, 0];

      var l, r, tmp, flag;

      flag = false;

      for (var i = lst.length - 1; i > 0; --i) {
      if (lst[i] === 0) {
      tmp = i - 1;

      while (tmp > 0 && lst[tmp] === 0) {
      tmp -= 1;
      if (tmp === 0) {
      flag = true;
      }
      }
      if (flag === true) break;

      [lst[tmp], lst[i]] = [lst[i], lst[tmp]];

      }
      }
      console.log(lst);

网易有道 测开

  1. 其中一个项目技术实现

  2. 参与过哪些测试(WEB、移动端、白盒)

  3. 对一支笔进行测试你会想到哪些方面需要测试?

  4. 栈和队列的区别?

  5. 浏览器输入一行URL按下回车会发生什么?

  6. GET和POST区别?

  7. 视图的优缺点?

    • 优点:
      • 使用起来简单,可以将复杂的查询语句封装为视图。
      • 数据更加安全,可以将需要的显示的字段显示给特定用户,而不暴露敏感字段。
    • 缺点:
      • 视图中的某些字段其实根本不存在,所以不能进行修改。
      • 性能差。
  8. 是否了解内联结、外联结、交叉联结。

    • 交叉联结:笛卡尔积。
  9. 算法题:

    • 给出一个字符串"absbshss",要求去重,并且去重后的字符串重新排列使其字典序最小。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    my_str = "absbshss"

    my_str = list(my_str)
    l = len(my_str)

    for index, char in enumerate(my_str):
    sub_str = my_str[:index]
    if(char not in sub_str):
    for i, c in enumerate(sub_str):
    if(char < c):
    my_str.insert(i, char)
    my_str = my_str[:index]+my_str[index+1:]
    break

    c_count = len(set(my_str))

    print("".join(my_str[:c_count]))

记第一次面试
https://siegelion.cn/2021/04/10/记第一次面试/
作者
siegelion
发布于
2021年4月10日
许可协议