字节前端一面--凉

js

  1. js 的数据类型 null undefined symbole string boolean function object array

  2. null == undefined (true) null === null (true) 结果是什么? 为什么?

  3. 普通类型和引用类型的区别

    基本数据类型是按值访问的,因为可以直接操作保存在变量中的实际值.
    引用用数据类型是保存在堆内存中的对象。

     与其他语言的不同是,你不可以直接访问堆内存空间中的位置和操作堆内存空间。只能操作对象在栈内存中的引用地址。
    所以,引用类型数据在栈内存中保存的实际上是对象在堆内存中的引用地址。通过这个引用地址可以快速查找到保存中堆内存中的对象。

    比如:

      var a = 10;
      var b = a;
      b = 20;
      console.log(a); // 10值
      var obj1 = new Object();
    
      var obj2 = obj1;
    
      obj2.name = “我有名字了”;
    
      console.log(obj1.name); // 我有名字了
  4. 判断数据类型的方式有那些

    • typeof 返回string,number,boolean,symbol,bigint,unfined,object,function
    • instanceof 返回Object,Function,Array,Date,RegExp等
    • constructor 返回null和undefined是无效的对象,因此是不会有constructor存在的,这两种类型的数据可以通过第四种方法来判断。
    • toString 通用
  5. 堆内存和栈的区别

    栈(stack):有编译器自动分配和释放,存放函数的参数、局部变量、临时变量、函数返回地址等;

    堆(heap):一般有程序员分配和释放,如果没有手动释放,在程序结束时可能由操作系统自动释放

  6. typeof [] 输出什么 object

  7. this指针指向的问题

      function foo() {
       return () => this;
     }
    console.log(foo()()) ;  //指向window
  8. 普通函数和箭头函数的区别

  1. 事件循环机制 ---promise的链式调用如何理解

       new Promise((resolve, reject) => {
       resolve();
     }).then(
       () => {
         console.log('1');
       }).then(() => {
         console.log(2);
       }).catch(() => {
         console.log(r)
       }).then(() => {
         console.log("then")
       })
    
     setTimeout(() => {
       console.log('hhahh')
     }, 100); 
     //输入 1 2 then hhahh

    http

  2. 输入浏览器到ip寻址过程发现哪些事?
    首先进入浏览器缓存,和host(在电脑的什么位置),然后使用dns寻址

  3. 浏览器缓存
    强缓存: cache-control: no-cache 此时会走协商缓存吗?

协商缓存: 304的意义是什么?
etag和什么配套使用? etag + last-modefied

代码题

  1. 求连续子串在父串中的位置

    let s = "ablc";
    let t = "lc";
     function getIndex(S, T, slen, tlen) {
       let i, j = 0, k = 0; //i表示串S的下标,j表示串T的下标,k表示子串在主串的位置
       i = k;            //子串在主串的位置
       while (i < slen && j < tlen) {
         if (S[i] == T[j]) {
           i++;
           j++;
         } else {
           k++;  //子串后移,比较后一个自串
           i = k;  //后一个子串的首尾开始
           j = 0;  //T子串从开始比较
         }
       }
       if (k === slen) {
         return -1;
       }
       return k;
     }
    
     console.log(getIndex(s, t, s.length, t.length), "we are family")
  2. 给定id的div,求其字节点的最大嵌套深度的最大值

  • 网上找的大神的代码

    var domBox = document.getElementById('lazy');
    
      alert(getEleDeep(domBox))
    
      function getEleDeep() {
        // 类似于数组的map方法 不过这里颗粒化了     
        var map = function map(cb) {
          return function (arr) {
            return Array.prototype.map.call(arr, cb);
          };
        };
    
        var max = function max(arr) {
          return arr.reduce(function (acc, cur) {
            if (cur >= acc) return cur;
            else return acc;
          }, arr[0]);
        };
    
        // 递归函数     
        var nextChildren = function nextChildren(node) {
          // 基准条件         
          if (node.children.length === 0) return 1;
          else {
            // 求子节点们的长度 并取最大值             
            var deeps = map(nextChildren)(node.children); //map.call(node.children, nextChildren)
            return 1 + max(deeps);  
          }
        };
    
        // 计算     
        var deep = nextChildren(domBox);
        return deep;
      }

总结: 一面总体不是很难,怪自己基础太差了。。。多多思考为啥呢,字节问的东西比较细节深入,代码还是要敲
回报牛客,祝我春招上岸吧✊👻

全部评论

相关推荐

这算盘打的
程序员小白条:都这样的,都是潜规则,你自己说可以实习一年就行了,实习可以随便跑路的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
避坑恶心到我了大家好,今天我想跟大家聊聊我在成都千子成智能科技有限公司(以下简称千子成)的求职经历,希望能给大家一些参考。千子成的母公司是“同创主悦”,主要经营各种产品,比如菜刀、POS机、电话卡等等。听起来是不是有点像地推销售公司?没错,就是那种类型的公司。我当时刚毕业,急需一份临时工作,所以在BOSS上看到了千子成的招聘信息。他们承诺无责底薪5000元,还包住宿,这吸引了我。面试的时候,HR也说了同样的话,感觉挺靠谱的。于是,我满怀期待地等待结果。结果出来后,我通过了面试,第二天就收到了试岗通知。试岗的内容就是地推销售,公司划定一个区域,然后你就得见人就问,问店铺、问路人,一直问到他们有意向为止。如果他们有兴趣,你就得摇同事帮忙推动,促进成交。说说一天的工作安排吧。工作时间是从早上8:30到晚上18:30。早上7点有人叫你起床,收拾后去公司,然后唱歌跳舞(销售公司都这样),7:55早课(类似宣誓),8:05同事间联系销售话术,8:15分享销售技巧,8:30经理训话。9:20左右从公司下市场,公交、地铁、自行车自费。到了市场大概10点左右,开始地推工作。中午吃饭时间大约是12:00,公司附近的路边盖饭面馆店自费AA,吃饭时间大约40分钟左右。吃完饭后继续地推工作,没有所谓的固定中午午休时间。下午6点下班后返回公司,不能直接下班,需要与同事交流话术,经理讲话洗脑。正常情况下9点下班。整个上班的一天中,早上到公司就是站着的,到晚上下班前都是站着。每天步数2万步以上。公司员工没有自己的工位,百来号人挤在一个20平方米的空间里听经理洗脑。白天就在市场上奔波,公司的投入成本几乎只有租金和工资,没有中央空调。早上2小时,晚上加班2小时,纯蒸桑拿。没有任何福利,节假日也没有3倍工资之类的。偶尔会有冲的酸梅汤和西瓜什么的。公司的晋升路径也很有意思:新人—组长—领队—主管—副经理—经理。要求是业绩和团队人数,类似传销模式,把人留下来。新人不能加微信、不能吐槽公司、不能有负面情绪、不能谈恋爱、不能说累。在公司没有任何坐的地方,不能依墙而坐。早上吃早饭在公司外面的安全通道,未到上班时间还会让你吃快些不能磨蹭。总之就是想榨干你。复试的时候,带你的师傅会给你营造一个钱多事少离家近的工作氛围,吹嘘工资有多高、还能吹自己毕业于好大学。然后让你早点来公司、无偿加班、抓住你可能不会走的心思进一步压榨你。总之,大家在找工作的时候一定要擦亮眼睛,避免踩坑!———来自网友
qq乃乃好喝到咩噗茶:不要做没有专业门槛的工作
点赞 评论 收藏
分享
评论
3
26
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务