搜狗 一面----网址导航 部门

那天在上课, 然后一个北京的电话打来:
面试官:"你好,请问你是***吗?.. "
我:"恩,我是的"
面试官:"我是搜狗前端的,我昨天有给你打过电话吗"
我:"没有"(等你好久了好吧....你就是不给我打...)
面试官:"那你21号早上十点来面试吧"(今天19号)
我:"恩...今天我有一个同学也去面试,如果可以的话,今天想和她一块儿".
面试官:"那也可以,你今天下午六点来面试,地址会发邮件给你"

三分钟过了...
我对我的时间安排后后悔了...

我干嘛要把时间安排到今天,多一天不是更好吗,还可以多学点知识,然后,各种纠结...过了两分钟,我又把电话打过去:
我:"喂,您好,我是***,请问一下,我想改一下时间可以吗?我想改到21号早上十点"(好吧,我四不四傻,自己不想好,改来改去,你让面试官怎么想...)
面试官:"可以,纳尼就21号早上十点来面试"

aaaa,我怎么是这种人,给面试官的印象一定不好了.那就面试的时候好好表现吧

21号早上来到高新区新路61号全季酒店,恩,还好,地方很当道,下车就在跟前,对于我这种路痴长大的来说,要的就是这种.....
来到房间,已经有一个同学在面试,我在外面等了大概十几分钟的样子,然后就到我了,先什么都不说,先来做一份笔试题吧
啊,好吧,做就做吧,谁怕谁,横竖都是死....没带笔啊, 面试官问我带笔没? 我说没有, 好尴尬....

一份8k大的纸,4道题目:
第一题:画出盒子模型
  这个简单,吧啦吧啦,画了IE和标准模型的盒子图
第二题: 给一个函数,给最后alert的结果(考察作用域立链对的问题)
var a = "hello";
function f1(){
    console.log(a);
}    

function f2(){
   var a = "world";
   f1();
}
f2();

输出结果?
大概就是这样一个题目
我来分析一下: 这个考察的是作用域链的问题, 由于函数的作用域链是在被定义的时候, 就确定了,而不是在执行的是后才确定,所有这里f1 是在 被定义的时候就被确定自身的作用域链, 即  a("hello")---> f1 ;  a(world)---> f2   ,所以在f2调用f1 的时候, 对于f1来说就回到自身的作用域链上, 去它自己的作用域链上去找相应的 变量a, 所以这道题最后的输出结果应该是hello (那么你猜我作对了没有?  猜中给你辣条吃)

第三题: 写一个数组去重的函数
我的当时的写法:
function  removeRepeat(arr){
   var  newArr = [ ];
   var obj = {};
  for(var ele of arr){
   if(! obj[ele]){
     newArr.push(ele);
    obj[ele] = true; 
     }
  }
}
感觉这个方法还是听巧妙的,至少只要一层循环就OK !

第四题:  有一个数组, 写一个函数实现随机生成的一个副本?
 题目理解: 元素就是随机插入,生成一个元数组的副本
我的解答:
  function  getEctype(arr) {
     var  newArr = [ ];
     for(var ele of arr){
        var index = parseInt(Math.random() * arr.length);
        newArr.push(arr[index]);
        arr.splice(index, 1);
   }
}

 做完笔试题就进入技术面试环节:
以下是我觉得我没有回答好的问题:(当然, 问的不仅仅是这些问题)

1.作用域链,在定义的时候就确定!还是在执行的时候确定?
   我说在执行的时候, 吧啦吧啦说了一堆我的理由,也就是我把刚做的那个笔试题的那个第二题的执行过程给他说了一下.....
  然后他笑了,他给我纠正说: "其实是在定义的时候就确定了"然后就把第二题的笔试题给我讲了一下,瞬间,啊, 好吧,这个问题给我纠正过来就好了

2. for of里面的这个of的执行机制?哪些可以使用of,对象不可以,数组可以不? 还有什么可以使用?
     这个,恩, 除了数组我还知道什么, 天啦,连这个都问, 看来以后的学习, 不仅要知其然, 还要之其所以然.....回去恶补吧

3. js数据类型的数值类型和引用类型有什么区别??他们在内存中怎么存储的?
4. new做了哪些事情?
答案:new做来了两件事:
    一,分配内存空间,继承本地以及propotype属性
二,改变this的指向,指向当前对象
5. ES6有哪些新特性?

      我的答案:     let 以{ }为作用域;
                         不再有变量提升(var 有) ;
                          暂时性死区;
                         const 定义常量,定义的时候就要赋值, 切之后不可以再改变,引用类型除外
                         解构复制的特性
                        给以前的原型链实现面向对象编程做了一个语法糖, 增加了class类
                         新增很多很好用的方法, 比如:for  of, map,....

    6.
原型链
   这个还好, 自己去研究过,记忆很深刻!





posted @ 2016-09-24 00:56  蝴蝶女郎  阅读(302)  评论(0)    收藏  举报