当前位置: 首页 / 就业指导 / 正文
[含答案]好程序员HTML5大前端面试题100道(2)

2019-12-27

北京WEB前端培训 北京HTML5培训 web前端面试题

好程序员HTML5前端经典面试题2,主要为大家分享的是:TCP传输、JQuery的选择器、javasprit的基本规范、 Html5datalist是什么、什么是ajaxjson,它们的优缺点等技术点。

一、 说说TCP传输的三次握手四次挥手策略

为了准确无误地把数据送达目标处,TCP协议采用了三次握手策略。用TCP协议把数据包送出去后,TCP不会对传送 后的情况置之不理,它一定会向对方确认是否成功送达。握手过程中使用了TCP的标志:SYNACK

发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。

最后,发送端再回传一个带ACK标志的数据包,代表“握手”结束。

若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。

断开一个TCP连接则需要“四次挥手”:

第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不 会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。

第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。

第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。

第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

二、 JQuery中有几种类型的选择器

1.层叠选择器$(“form  input”)

2.基本过滤选择器 :first  :last :not()

3.内容过滤选择器:odd:eq():animated

4.可视化过滤选择器 :hidden :visible

5.属性过滤选择器:div[id]

6.子元素过滤选择器:firstchild :lastchild :only :child

7.表单元素过滤选择器 :enabled :disabled :checked :selected

8.id,类,类型,元素...

三、 jQuery中的Delegate()函数有什么作用

delegate() 方法为指定的元素(属于被选元素的子元素)添加个或多个事件处理程序,并规定当这些事件发生时运行的函数。

使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。$("div").delegate("button","click",function(){

  $("p").slideToggle();});

四、 行内元素有那些。块级元素有那些。空元素有哪些

首先:CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,如divdisplay默认值为“block”,则为块级元素; span默认display属性值为“inline”,是行内元素。

1)行内元素有:a b span select strong(强调的语气)img input(内联元素)

2)块级元素有:div ul ol li dl dt dd h1 h2 h3 h4…p

3)常见的空元素:

    <br> <hr> <img> <input> <link> <meta>

    鲜为人知的是:

    <area> <base> <col> <command> <embed> <keygen> <param> <source> <track> <wbr>

五、 说几条javasprit的基本规范

1.不要在同行声明多个变量。

2.请使用 ===/!==来比较true/false或者数值

3.使用对象字面量替代new Array这种形式

4.不要使用全局函数。

5.Switch语句必须带有default分支

6.函数不应该有时候有返回值,有时候没有返回值。

7.For循环必须使用大括号

8.If语句必须使用大括号

9.for一in循环中的变量 应该使用var关键字明确限定作用域,从而避免作用域污染。

六、 介绍一下标准的css盒模型,低版本ie盒模型有什么不同

1盒模型有两种, IE 盒子模型、W3C 盒子模型;

2)盒模型: 内容(content)、填充(padding)、边界(margin)、 边框(border)

3)区  别: IEwidth部分把 border padding计算了进去;

七、 说出三种减少页面加载的方法(加载时间指感知的时间或实际加载的时间)

CSS Sprites;

JSCSS源码压缩、图片大小控制合适;

网页Gzip;

CDN托管

data缓存

图片服务器

八、 js代码简单的介绍下自己

<script>

    function Person(name,jingli,jineng) {

      this.name=name;

      this.jingli=jingli;

      this.jineng=jineng;

    }

    Person.prototype.show=function(){

      console.log("我是"+this.name+";我有如下经历:"+this.jingli+";我会如下技能:"+this.jineng);

    }

    var myself=new Person("小田","小田工作室创办人,凤翔网络推广顾问","熟悉前端基本技能,熟悉网络营销思想有实战经验,掌握项目经理技能,可以编写文档,也可以使用axure进行原型设计,掌握自动化测试和性能测试技能")

    myself.show();

  </script>

 

九、 Html5datalist是什么

<datalist> 标签定义选项列表 input 元素配合使用该元素,来定义 input 可能的值。

datalist 及其选项不会被显示出来,它仅仅是合法的输入值列表

<input id="myCar" list="cars" />

<datalist id="cars">

  <option value="BMW">

  <option value="Ford">

  <option value="Volvo">

</datalist>

 

十、 Ajax同步和异步的区别,如何解决跨域问题

同步的概念应该是来自于OS中关于同步的概念:不同进程为协同完成某项工作而在先后次序上调整(通过阻塞,唤醒等方式).同步强调的是顺序性.谁先谁后.异步则不存在这种顺序性.

同步:浏览器访问服务器请求,用户看得到页面刷新,重新发请求,等请求完,页面刷新,新内容出现,用户看到新内容,进行下步操作。

异步:浏览器访问服务器请求,用户正常操作,浏览器后端进行请求。等请求完,页面不刷新,新内容也会出现,用户看到新内容。

jsonpiframewindow.namewindow.postMessage、服务器上设置代理页面

十一、 列举几种后端通讯的方法及其使用的场景,关于跨域的理解。

1.后端程序可以通过session来进行通讯,session有过期时间,主要用于验证码的验证,登录过期等的应用。

2.数据库,数据库支持多种语言的操作,那么通过数据库就可以通讯。

关于跨域:

跨域请求存在的原因:由于浏览器的同源策略,即属于不同域的页面之间不能相互访问各自的页面内容。

跨域的场景    

1.域名不同 www.yangwei.com www.wuyu.com 即为不同的域名)

2.二级域名相同,子域名不同(www.wuhan.yangwei.com www.shenzheng.yangwei.com 为子域不同)

3.端口不同,协议不同  http://www.yangwei.com https://www.yangwei.com属于跨域www.yangwei.con:8888www.yangwei.con:8080)

跨域的方式:(内容较多,需掌握CORSjsonp,其他内容也要了解)

1.前端的方式: possMessagewindow.name,document.domain,image.src(得不到数据返回)jsonP(script.src后台不配合得不到数据返回)style.href(得不到数据返回)

一.image.src,script.src,style.href 不受同源策略的影响可以加载其他域的资源,可以用这个特性,向服务器发送数据。最常用的就是使用image.src 向服务器发送前端的错误信息。image.src style.href 是无法获取服务器的数据返回的,script.src 服务器端配合可以得到数据返回。

possMessage,window.name,document.domain 是两个窗口直接相互传递数据。

1possMessage HTML5中新增的,使用限制是 必须获得窗口的window 引用。IE8+支持,firefoxchrome,safair,opera支持

 2window.name ,在个页面中打开另个页面时,window.name 是共享的,所以可以通过window.name 来传递数据,window.name的限制大小是2M,这个所有浏览器都支持,且没有什么限制。

3document.domain 将两个页面的document.domain 设置成相同,document.domain 只能设置成父级域名,既可以访问,使用限制:这顶级域名必须相同

2.纯后端方式: CORS,服务器代理

CORS w3c标准的方式,通过在web服务器端设置:响应头Access一Cntrol一Alow一Origin 来指定哪些域可以访问本域的数据,ie8&9(XDomainRequest),10+,chrom4 firefox3.5,safair4opera12支持这种方式。

服务器代理,同源策略只存在浏览器端,通过服务器转发请求可以达到跨域请求的目的,劣势:增加服务器的负担,且访问速度慢。

3.前后端结合:JsonP

script.src 不受同源策略的限制,所以可以动态的创建script标签,将要请求数据的域写在src 中参数中附带回调的方法,服务器端返回回调函数的字符串,并带参数。

script.src="http://www.yangwei.com/?id=001&callback=getInfoCallback",服务器端返回 getInfoCallBack("name:yangwei;age:18") 这段代码会直接执行,在前面定义好getInfoCallBack函数,既可以获得数据并解析。 这种是最见的方式。

4.webSocket(了解性拓展)

服务端推送websocketsse场景及应用

应用场景

都可以进行服务端推送,并且都是使用长连接来进行.但两者的实现又有点不同,sse仍使用http协议,并且使用相同的链接发送正常的http协议报文.websocket是使用http协议进行握手,然后再使用同个链接进行websocket协议的通信.

websocket可以进行双向的通信,即服务端可以往客户端发信息,客户端也可以向服务端发信息.sse是单向的,只能由服务端往客户端发.

websocket自带连接的保持,即通过ping/pong协议保证连接可以始终维持,sse没有这个保证,不过可以参考ping/pong协议,自己周期性地发送信息来同样地进行处理.比如,5秒往客户端发个特别的信息(通过type/name进行区分).其次,因为是基于浏览器的使用,sse个特性,就是浏览器发现个连接断掉了,就会自动地进行重联,即重新发送请求.这样,服务端也不用担心连接被断开,不过需要处理新的请求必须和上次请求的内容相连续,以及新的推送注册.

因为都是使用http协议进行起始处理,因此在签权上都可以使用到http协议本身的些东西,比如header/cookie签权.在相应的握手阶段,通过读取cookie(session)来保证相应的请求必须是经过授权的,也可以用于定位使用人.甚至可以通过这些信息保证单个用户只能有个请求,避免重复请求

由于都是基于浏览器使用,因此建议的数据传输都是文本型.虽然websocket支持二进制frame传输,不过些都不建议使用.sse只能传输文本

不管是websocket还是sse,在用于通信时,都建议只用于进行数据的推送,而不是进行完整的应用处理.这里可以理解为,常规的业务处理仍然交给后端的服务来处理.这样,即可以使用之前的业务开发的优势,又可以使用推送的优势.而不是走向另个级端,即所有的信息都想通过推送来传递.

开发方式

websocket开发首选netty,因为netty对协议的封装已经做到了完全的支持.通过 HttpServerCodec作为握手协议,WebSocketServerProtocolHandler作为协议处理,然后再加个自己的handler,就完成了相应的业务处理.同时在性能上,nettyws的请求建立起来之后,会自动地去除httpServerCodec相关的handler,这样保证后续的处理都是按照ws的协议来进行.

sse开发首选jersey,jersey一media一sse提供了相应的sse支持,并且通过与rest相集成,开发sse就跟普通的业务开发相同.

wssse在文本支持上都只支持utf一8编码,因此在处理上需要注册编码方式.同时在使用sse,如果后端第次进行响应时,相应的编码不对.chrome会直接报错,包括utf8都会报错(这是之前后端开发的个问题),可以修正或者增加相应的拦截器,保证后端content一type响应中的charset=UTF一8.

wssse都可以通过nginx进行代理转发.ws的处理只需要设置http版本,以及重新转发前端的UpgradeConnection头即可.sse,也可以通过禁用buffer来处理.参考 http://stackoverflow.com/questions/27898622/server一sent一events一stopped一work一after一enabling一ssl一on一proxy

特定实现

为保证在开发时推送类的和业务类的系统不会耦合在,或者同个应用内有两种处理模式的功能存在.建议直接在系统层就开发2个不同的系统,个专门用于推送,个用于相应的业务处理.然后业务处理后的数据,需要再交由推送处理,则可以在后端进行通过消息系统进行中转,kafka(持久保证)redis(内存订阅)

因为二者在ie上的支持都很有限,因此不建议在ie上进行尝试

使用sse还是websocket,取决于是否需要前台交互,还取决于对后端的支持技术的了解程序.比如,了解jersey,还是netty.由于最近netty进行微服务化底层通信支持越来越流行,个人更倾向于使用websocket.但如果仅仅是个简单的推送功能,又不希望修改代码,那也可以使用jersey(毕竟之前的系统就是在上面进行开发的)

需要后端有的时候需要进行定向发送或者是群发,这种需求wssse的实现中都有相应的处理.ChannelGroupSseBroadcaster,这样在后端获取到个消息,需要进行路由时就可以从这里面拿相应的channel信息.不过,前提是对各个channel上进行了特定的消息绑定,这样就好区分具体的路由信息.具体路由策略可以在建立时绑定session,后续通过session来路由.

十二、 设计一个幻灯应用,需要列举选择的基础框架、项目的基础框架和代码管理、幻灯数据的存储和读取,部分特效的实现,可以只写思路,后续面聊。

本题无标准答案,同学们可以自己研究考虑一下,。

十三、 Html5中本地存储概念是什么,有什么优点,与cookie有什么区别?

html5中的Web Storage包括了两种存储方式:sessionStoragelocalStorage

sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。而localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的;

cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。

区别:

1、 cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而sessionStoragelocalStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。

2、 存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStoragelocalStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。

3、 数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。

4、 作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。

十四、 说说你对作用域链的理解

作用域链的作用是保证执行环境里有权访问的变量和函数是有序的,作用域链的变量只能向上访问,变量访问到window对象即被终止,作用域链向下访问变量是不被允许的。

十五、 什么是ajaxjson,它们的优缺点

ajax的全称:Asynchronous Javascript And XML

异步传输+js+xml实现无刷新状态更新页面和异步提交

所谓异步,在这里简单地解释就是:向服务器发送请求的时候,我们不必等待结果,而是可以同时做其他的事情,等到有了结果它自己会根据设定进行后续操作,与此同时,页面是不会发生整页刷新的,提高了用户体验。

Ajax实现过程:

(1)创建XMLHttpRequest对象,也就是创建个异步调用对象

(2)创建个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息

(3)设置响应HTTP请求状态变化的函数

(4)发送HTTP请求

(5)获取异步调用返回的数据

(6)使用JavaScriptDOM实现局部刷新

优点:

不需要插件支持

用户体验极佳

提升Web程序性能

减轻服务器和宽带的负担

缺点:

前进后退按钮被破坏

搜索引擎的支持不够

开发调试工具缺乏

JSONJavaScript Object Notation)和XML一样也是一种简单文本格式。是一种比较流行的标准格式,是数据的载体,相对于XMLJSON更加易读、更便于肉眼检查。在语法的层面上,JSON与其他格式的区别是在于分隔数据的字符,JSON中的分隔符限于单引号、小括号、中括号、大括号、冒号和逗号。

优点:

   作为一种数据传输格式,JSON XML 很相似,但是它更加灵巧。

   JSON不需要从服务器端发送含有特定内容类型的首部信息。

缺点:

   语法过于严谨

   代码不易读

   eval 函数存在风险

十六、 Html5有那些新增的表单元素

表单控:colorcalendardatedatetimedatetime一local,timemouthweekemailurlsearchrangetel

新的表单元素:datalist,keygen,output

十七、 h1ttp状态码有那些,分别代表什么意思

简单版:

        100  Continue   继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息

        200  OK         正常返回信息

        201  Created    请求成功并且服务器创建了新的资源

        202  Accepted   服务器已接受请求,但尚未处理

        301  Moved Permanently  请求的网页已永久移动到新位置。

        302 Found       临时性重定向。

        303 See Other   临时性重定向,且总是使用 GET 请求新的 URI

        304  Not Modified 自从上次请求后,请求的网页未修改过。

        400 Bad Request  服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。

        401 Unauthorized 请求未授权。

        403 Forbidden   禁止访问。

        404 Not Found   找不到如何与 URI 相匹配的资源。

        500 Internal Server Error  最常见的服务器端错误。

        503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)。

  完整版

  1**(信息类):表示接收到请求并且继续处理

    100——客户必须继续发出请求

    101——客户要求服务器根据请求转换HTTP协议版本

  2**(响应成功):表示动作被成功接收、理解和接受

    200——表明该请求被成功地完成,所请求的资源发送回客户端

    201——提示知道新文件的URL

    202——接受和处理、但处理未完成

    203——返回信息不确定或不完整

    204——请求收到,但返回信息为空

    205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件

    206——服务器已经完成了部分用户的GET请求

  3**(重定向类):为了完成指定的动作,必须接受进一步处理

    300——请求的资源可在多处得到

    301——本网页被永久性转移到另一个URL

    302——请求的网页被转移到一个新的地址,但客户访问仍继续通过原始URL地址,重定向,新的URL会在response中的Location中返回,浏览器将会使用新的URL发出新的Request

    303——建议客户访问其他URL或访问方式

    304——自从上次请求后,请求的网页未修改过,服务器返回此响应时,不会返回网页内容,代表上次的文档已经被缓存了,还可以继续使用

    305——请求的资源必须从服务器指定的地址得到

    306——前一版本HTTP中使用的代码,现行版本中不再使用

    307——申明请求的资源临时性删除

  4**(客户端错误类):请求包含错误语法或不能正确执行

    400——客户端请求有语法错误,不能被服务器所理解

    401——请求未经授权,这个状态代码必须和WWWAuthenticate报头域一起使用

    HTTP 401.1 一 未授权:登录失败

      HTTP 401.2 一 未授权:服务器配置问题导致登录失败

      HTTP 401.3 ACL 禁止访问资源

      HTTP 401.4 一 未授权:授权被筛选器拒绝

    HTTP 401.5 一 未授权:ISAPI CGI 授权失败

    402——保留有效ChargeTo头响应

    403——禁止访问,服务器收到请求,但是拒绝提供服务

    HTTP 403.1 禁止访问:禁止可执行访问

      HTTP 403.2 一 禁止访问:禁止读访问

      HTTP 403.3 一 禁止访问:禁止写访问

      HTTP 403.4 一 禁止访问:要求 SSL

      HTTP 403.5 一 禁止访问:要求 SSL 128

      HTTP 403.6 一 禁止访问:IP 地址被拒绝

      HTTP 403.7 一 禁止访问:要求客户证书

      HTTP 403.8 一 禁止访问:禁止站点访问

      HTTP 403.9 一 禁止访问:连接的用户过多

      HTTP 403.10 一 禁止访问:配置无效

      HTTP 403.11 一 禁止访问:密码更改

      HTTP 403.12 一 禁止访问:映射器拒绝访问

      HTTP 403.13 一 禁止访问:客户证书已被吊销

      HTTP 403.15 一 禁止访问:客户访问许可过多

      HTTP 403.16 一 禁止访问:客户证书不可信或者无效

    HTTP 403.17 一 禁止访问:客户证书已经到期或者尚未生效

    404——一个404错误表明可连接服务器,但服务器无法取得所请求的网页,请求资源不存在。eg:输入了错误的URL

    405——用户在RequestLine字段定义的方法不允许

    406——根据用户发送的Accept拖,请求资源不可访问

    407——类似401,用户必须首先在代理服务器上得到授权

    408——客户端没有在用户指定的饿时间内完成请求

    409——对当前资源状态,请求不能完成

    410——服务器上不再有此资源且无进一步的参考地址

    411——服务器拒绝用户定义的ContentLength属性请求

    412——一个或多个请求头字段在当前请求中错误

    413——请求的资源大于服务器允许的大小

    414——请求的资源URL长于服务器允许的长度

    415——请求资源不支持请求项目格式

    416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含IfRange请求头字段

    417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求长。

  5**(服务端错误类):服务器不能正确执行一个正确的请求

    HTTP 500 一 服务器遇到错误,无法完成请求

      HTTP 500.100 一 内部服务器错误 一 ASP 错误

      HTTP 50011 服务器关闭

      HTTP 50012 应用程序重新启动

      HTTP 50013 一 服务器太忙

      HTTP 50014 一 应用程序无效

      HTTP 50015 一 不允许请求 global.asa

      Error 501 一 未实现

  HTTP 502 一 网关错误

  HTTP 503:由于超载或停机维护,服务器目前无法使用,一段时间后可能恢复正常

十八、 HTTP的请求方法

HTTPHypertext Transfer Protocol)的八种请求方法:

方法

概述

GET

请求页面的详细信息,并返回实体主体。

POST

向指定资源提交数据进行数据请求(例如提交表单,或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

PUT

从客户端向服务器传送的数据取代指定的文档内容。

DELETE

请服务器删除指定的页面。

HEAD

类似与Get请求,只不过返回的响应中没有具体的内容,用于获取报头

CONNECT

HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

OPTIONS

允许客户端查看服务器的性能。

TRACE

回显服务器收到的请求,主要用于测试或诊断。

 

十九、 什么是闭包(closure)为什么要用它

闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域,将函数内部的变量和方法传递到外部。

闭包的特性:

1.函数内再嵌套函数

2.内部函数可以引用外层的参数和变量

3.参数和变量不会被垃圾回收机制回收

例如://li节点的onclick事件都能正确的弹出当前被点击的li索引

<ul id="testUL">

    <li> index = 0</li>

    <li> index = 1</li>

    <li> index = 2</li>

    <li> index = 3</li>

</ul>

<script type="text/javascript">

    var nodes = document.getElementsByTagName("li");

    for(i = 0;i<nodes.length;i+= 1){

        nodes[i].onclick = (function(i){

                  return function() {

                     console.log(i);

                  } //不用闭包的话,值每次都是4

                })(i);

    }

</script>

 

执行say667(),say667()闭包内部变量会存在,而闭包内部函数的内部变量不会存在

使得Javascript的垃圾回收机制GC不会收回say667()所占用的资源

因为say667()的内部函数的执行需要依赖say667()中的变量

这是对闭包作用的非常直白的描述

function say667() {

    // Local variable that ends up within closure

    var num = 666;

    var sayAlert = function() {

        alert(num);

    }

    num++;

    return sayAlert;

}

 var sayAlert = say667();

 sayAlert()//执行结果应该弹出的667

 

你知道哪些针对jQuery的优化方法

基于Class的选择性的性能相对于Id选择器开销很大,因为需遍历所有DOM元素。

频繁操作的DOM,先缓存起来再操作。用Jquery的链式调用更好。

 比如:var str=$("a").attr("href");

for (var i = size; i < arr.length; i++) {}

 for 循环每一次循环都查找了数组 (arr) .length 属性,在开始循环的时候设置一个变量来存储这个数字,可以让循环跑得更快:

 for (var i = size, length = arr.length; i < length; i++) {}

二十、 用原型链继承的方式写一个类和子类

function Person(name,age){

this.name=name;

this.age=age;

}

Person.prototype.study=function(){

return "学习"

}

/*var p1 =new Person("张三",20);*/

/*p1.study();*/

function Student(class_,name,age){

this.class_=class_;

this.name=name;

this.age=age;

}

Student.prototype=new Person();

var s1 =new Student("二班","李大人",16);

console.log(s1.name,s1.age,s1.class_,s1.study());

 希望今天分享的前端面试题能对你的面试有所帮助,希望大家继续关注~

 

好程序员公众号

  • · 剖析行业发展趋势
  • · 分享大厂面试心得
  • · 汇聚企业项目源码
  • · 下载全套高精尖教程

好程序员开班动态

More+
  • HTML5大前端 <高端班>

    开班时间:2020-11-16(北京)

    开班盛况

    开班时间:2020-12-07(深圳)

    预约报名
  • 大数据+人工智能 <高端班>

    开班时间:2020-09-14(北京)

    开班盛况

    开班时间:2020-11-09(北京)

    开班盛况
  • JavaEE分布式开发 <高端班>

    开班时间:2021-01-04(北京)

    预约报名

    开班时间:2020-07-20(北京)

    开班盛况
  • Python人工智能+数据分析 <高端班>

    开班时间:2020-07-20(上海)

    开班盛况

    开班时间:2020-09-21(上海)

    开班盛况
  • 云计算开发 <高端班>

    开班时间:2019-07-22(北京)

    开班盛况

    开班时间:2019-07-15(深圳)

    开班盛况
在线咨询
免费试听
入学教程
立即报名

Copyright 2011-2020 北京千锋互联科技有限公司 .All Right 京ICP备12003911号-5 京公安网11010802011455号