• 【面试季一】若干前端面试题


    最近又成了“FreeTecher”,这几天整理完简历,又开始奔波在北京的大街小巷。

    跑也不能白跑是不是,So顺便把各个公司的面试题拿出来做一下共享。

    答案有自己写的,有网上找的,如有不正确的,请指出,感激不尽~~~

    如贵公司的面试题不可以网络公开,请留言,我会尽可能快的将文章下架,Sorry~~~

     【你也晓得啦~找工作阶段杂事比较多,所以下面的题没有完全做完,只是先把题目列出来然后一点点完善啦~~~亲要是着急用,自己去百度谷歌一下哈~~~】

    一:写出JS中基本数据类型

      ECMAScript中有5种简单数据类型(也称为基本数据类型):Undefined,Null,Boolean,Number和String。还有一种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。【JavaScript高级程序设计第三版第三章】

    二:将类数组转化为真正的数组,我们一般怎么做,用代码写出

      http://segmentfault.com/a/1190000000415572      

      【为了节约时间。。。嘿嘿】

    三:

    1 var a=[1,2,3,4],i=0;
    2 
    3   a[i++]=a[i++]*2;
    4 
    5   console.log(a);

      输出结果是什么?

      a=[4,2,3,4]

      【这道题我家先生看到以后很感兴趣,立即和我打赌了一下,然后两个人讨论了很久。。。】

    四:

    1 var a='1'+2-'1';
    2 
    3   console.log(a);

      执行结果是什么?

      a=11;

      【这个主要考察隐式转换】

    五:

    1      b();a();
    2 
    3   var a=function(){console.log("aaa")};
    4 
    5   function b(){console.log("bbb")};

      上述代码执行会出现什么结果,请简单解释。

      b();==>bbb;

      a();==>报错,因为a在运行的时候尚未定义

      【这部分主要是在考察函数预解释这方面的知识】

    六:请列出XMLHttpRequest通用属性和方法。

      http://blog.163.com/yang_jianli/blog/static/161990006201042421844222/

    七:

     1      var name="global";
     2 
     3   var obj={
     4 
     5     name:"obj",
     6 
     7     dose:function(){
     8 
     9       this.name="dose";
    10 
    11       return function(){return this.name}
    12 
    13     }
    14 
    15   };
    16 
    17   var result=obj.dose().call(this);

      result的值是什么?

      result="global";

      【这里考察的主要是call的作用:改变this指向】

    八:用JS定义一个animal类,然后实例化它(属性、方法各一个即可);

     1   function Animal(name){
     2 
     3     this.name=name;
     4 
     5     this.skill=function(){ alert("I'm hungry~"); };
     6 
     7   };
     8 
     9   var tiger=new Animal("tiger");
    10 
    11     console.log(tiger.name);
    12 
    13     tiger.skill();

      【这里是我自己的理解,当时面试的时候也是这么答的,不确定是否正确,如有大神,请指点一下】  

    九:简单介绍Css盒子模型;

      http://www.cnblogs.com/sunyunh/archive/2012/09/01/2666841.html

      【盒子模型是我了解的比较好的一个知识点,可用语言表达的总是不咋地,所以每次都是给面试官画图。。。这个姐真会^_^】

    十:请说明你用到了谷歌哪些调试工具或是API;

      控制台,手机模拟器

      【这里就写自己常用的即可】

    十一:以下函数的作用是什么?空白区域应该填写什么?  

     1 //定义
     2 
     3   (function(window){
     4 
     5     function fn(str){ this.str=str ;};
     6 
     7     fn.prototype.format=function(){
     8 
     9       var arg=___1___;
    10 
    11       return this.str.replace(___2__,function(a,b){
    12 
    13          return arg[b] || "";
    14 
    15       });
    16 
    17     };
    18 
    19     window.fn=fn;
    20 
    21   })(window);
    22 
    23   //使用
    24 
    25   (function(){
    26 
    27     var t=new fn("<p><a href="{0}">{1}</a><span>{2}</span></p>");
    28 
    29     console.log(t.format("http://www.cnki.net","Cnki","Welcome"));
    30 
    31   })();

    十二:编写一个函数将列表子元素顺序反转;

     1   <ul>
     2 
     3     <li>1</li>
     4 
     5     <li>2</li>
     6 
     7     <li>3</li>
     8 
     9     <li>4</li>
    10 
    11   </ul>

    十三:如何判断一个对象是否为函数;   

    1 typeof(fn)=="function";

    十四:完成一个函数,接受数组作为参数,数组元素为整数或数组,数组元素包含整数或数组,函数返回扁平化后的数组;

      如:[1,[2,[[3,4],5],6]]==>[1,2,3,4,5,6];

    十五:下面这段代码想要循环延时输出结果0,1,2,3,4,请问输出结果是否正确?如果不正确请说明为什么,并修改循环内的代码使其输出正确的结果。

    1   for(var i=0;i<5;++i){
    2 
    3     setTimeout(function(){console.log(i+" ")},100);
    4 
    5   }

    十六:有一个大数组,var a=["1","2","3"... ...];a的长度是100,内容填充随机整数的字符串,请先构造此函数a,然后设计一个算法将其内容去重;

    十七:一个页面从输入URL,到页面加载完的过程中都发生了什么事情?越详细越好。

      1输入地址

      2浏览器查找域名的 IP 地址
        这一步包括 DNS 具体的查找过程,包括:浏览器缓存->系统缓存->路由器缓存...

      3浏览器向 web 服务器发送一个 HTTP 请求

      4服务器的永久重定向响应(从 http://example.com 到 http://www.example.com

      5浏览器跟踪重定向地址

      6服务器处理请求

      7服务器返回一个 HTTP 响应

      8浏览器显示 HTML

      9浏览器发送请求获取嵌入在 HTML 中的资源(如图片、音频、视频、CSSJS等等)

      10浏览器发送异步请求

      【对于这个问题,我了解大概一个过程,但是并不深入,所以给一个最简单的答案(网络),如果亲有兴趣或是想深入了解,请自行谷歌】

  • 相关阅读:
    文件共享服务之FTP
    通过rsycn实现数据同步
    rsync命令的使用
    Linux之ssh服务
    跳板机的工作原理和简单的跳板机实现
    Linux进程管理
    javaweb图片上传 tomcat重新部署 图片消失
    KindEditor 上传文件
    PL/SQL通过修改配置文件的方式实现数据库的连接
    PermGen space
  • 原文地址:https://www.cnblogs.com/oyangyin/p/4795761.html
Copyright © 2020-2023  润新知