javascript前台工程师面试题.doc_第1页
javascript前台工程师面试题.doc_第2页
javascript前台工程师面试题.doc_第3页
javascript前台工程师面试题.doc_第4页
javascript前台工程师面试题.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

javascript前台工程师面试题需要的朋友可以参考一下,附部分答案。 一、单选题 1、以下哪条语句会产生运行错误:(a) A.var obj = ();/语法错误 B.var obj = ;/创建数组 C.var obj = ;/创建对象 D.var obj = /; 原因:var obj = new Array ();是对的;JavaScript 中大括号表示创建对象。var obj = id:1, name:jacky ;alert();上例表示创建一个具有属性 id (值为 1)、属性 name(值为 jacky)的对象。属性名称可以用引号引起来成 id、name,也可以不引。 当然除了属性,也可以创建方法。 试验代码 /* window.onload=function() / var obj = (); var obj1 = ;/object var obj2 = ;/object var obj3 = /;/undefine alert(typeof(obj1); alert(typeof(obj2); alert(typeof(obj3); */ function showName() alert(); var obj = id:1, name:jacky, showName:showName ; obj.showName(); 2、以下哪个单词不属于javascript保留字:(b) A.with B.parent C.class D.void 以下的保留字不可以用作变量,函数名,对象名等,其中有的保留字是为以后JAVASCRIPT扩展用的. abstract boolean break byte case catch char class const continue default do double else extends false final finally float for function goto if implements import in instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try var void while with 3、请选择结果为真的表达式:(c) A.null instanceof Object(if(!(null instanceof Object)是真的) B.null = undefined C.null = undefined D.NaN = NaN (1) null确实可以理解为原始类型,不能当Object理解! null,int,float.等这些用关键字表示的类型,都不属于Object. 至于可以把null作为参数,只是特殊规定而已. 可以这么理解: 对象的引用代表的是一个内存的值,null是一个空引用,可以理解为内存的值为0;按这个意思对代码 (2) function f1() 1. alert(f1 instanceof Function);/true 2. alert(f1 instanceof Object);/true 3. alert(Function instanceof Object);/true 4. alert(Object instanceof Function);/true Function 是Object的实例,Object又是Function的实例 Function是函数的构造函数,而Object也是函数,Function自身也是函数 Ototype是一切原型链的顶点,instanceof会查找整个原型链 alert(Function); alert(Ftotype); alert(Function._proto_); alert(Object); alert(Ototype); alert(Object._proto_); alert(function().prototype); alert(function()._proto_); alert(function()._proto_.prototype); alert(function().prototype._proto_); alert(Array._proto_); alert(123)._proto_); alert(Number)._proto_); alert(test)._proto_); alert(String)._proto_); alert(true)._proto_); alert(Boolean)._proto_); /* window.onload=function() if(NaN = NaN) alert(ddd); */ 二、不定项选择题 4、请选择对javascript理解有误的:(abcd) A.JScript是javascript的简称 B.javascript是网景公司开发的一种Java脚本语言,其目的是为了简化Java的开发难度 C.FireFox和IE存在大量兼容性问题的主要原因在于他们对javascript的支持不同上 D.AJAX技术一定要使用javascript技术 5、foo对象有att属性,那么获取att属性的值,以下哪些做法是可以的:(ACE) A.foo.att B.foo(“att”) C.foo“att” D.foo“att” E.foo“a”+”t”+”t” 6、在不指定特殊属性的情况下,哪几种HTML标签可以手动输入文本:(ab) A. B. C. D. 7、以下哪些是javascript的全局函数:(abc) A.escape B.parseFloat C.eval D.setTimeout E.alert 8、关于IFrame表述正确的有:(abcd) A.通过IFrame,网页可以嵌入其他网页内容,并可以动态更改 B.在相同域名下,内嵌的IFrame可以获取外层网页的对象 C.在相同域名下,外层网页脚本可以获取IFrame网页内的对象 D.可以通过脚本调整IFrame的大小 9、关于表格表述正确的有:(abcde) A.表格中可以包含TBODY元素 B.表格中可以包含CAPTION元素 C.表格中可以包含多个TBODY元素 D.表格中可以包含COLGROUP元素 E.表格中可以包含COL元素 10、关于IE的window对象表述正确的有:(acd) A.window.opener属性本身就是指向window对象 B.window.reload()方法可以用来刷新当前页面 C.window.location=”a.html”和window.location.href=”a.html”的作用都是把当前页面替换成a.html页面 D.定义了全局变量g;可以用window.g的方式来存取该变量 三、问答题: 1、谈谈javascript数组排序方法sort()的使用,重点介绍sort()参数的使用及其内部机制 sort的实现的功能类似JAVA的比较器,数据排序从多维数组的第一维开始排序 可以自己定义排序方法,很不多的函数 2、简述DIV元素和SPAN元素的区别。 DIV是块元素,span是内联元素或叫行内元素1.所谓块元素,是以另起一行开始渲染的元素,行内元素则不需另起一行,2.块元素和行内元素也不是一成不变的,通过定义CSS的display属性值可以互相转化DIV指定渲染 HTML 的容器。 SPAN指定内嵌文本容器。3、结合text这段结构,谈谈innerHTML outerHTML innerText之间的区别。 这个问题只要写一下看的很清楚 innerHTML对象里面的HTML,outerHTML包括对象和里面的 innerText对象里面的文本 4、说几条XHTML规范的内容(至少3条) 属性加引号,不能有不匹配的标签,加定义 5、对Web标准化(或网站重构)知道哪些相关的知识,简述几条你知道的Web标准? 网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的网站标准也分三方面:结构化标准语言,主要包括XHTML和XML;表现标准语言主要包括CSS;行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。四、程序题: 1、完成foo()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框。 function foo()var rg = document.getElementsByName(radioname);for(var i=0; irg.length; i+)if(rgi.checked)alert(你选择了第 + (i+1) + 个单选框!);return false; 2、数字反转 alert(reverse(a,b,c,d,e,f,g);function reverse(str)var spl = str.split(,), newstr = ;for(var i=spl.length-1; i=0; i-)newstr += spli + ,;newstr = newstr.substring(0, newstr.length - 1);return newstr;其它相关面试第一题编写一个方法 求一个字符串的字节长度new function(s) if (!arguments.length | !s) return null; if ( = s) return 0; var l = 0; for (var i = 0; i 255) l += 2; else l+; alert(l);(hello你好,我好,大家好!world!);第二题如何控制alert中的换行alert(hellonworld);第三题解释document.getElementById(ElementID).style.fontSize=1.5em;em是个相对单位。第四题将一个类似图中的效果分离成css和html第五题按照格式 xxxx年xx月xx日xx时xx分xx秒动态显示时间 要求不足10的补0new function() var t = function(a) return a 10 ? 0 + a : a; alert(new Date().getFullYear() + 年 + t(new Date().getMonth() + 1) + 月 + t(new Date().getDate() + 日 + t(new Date().getHours() + 时 + t(new Date().getMinutes() + 分 + t(new Date().getSeconds() + 秒);第六题编写一个方法 去掉一个数组的重复元素Atotype.strip = function() if (this.length 2) return this0 | ; var arr = ; for (var i = 0; i this.length; i+) arr.push(this.splice(i-, 1); for (var j = 0; j this.length; j+) if (thisj = arrarr.length - 1) this.splice(j-, 1); return arr;var arr = abc, 85, abc, 85, 8, 8, 1, 2, 5, 4, 7, 8;alert(arr.strip();第七题说出3条以上ff和ie的脚本兼容问题第八题按要求写一个简单的ajax示例 简单的没意义 就不写了var Browser = /* Browser对象用于检测浏览器,其中用到了IE的条件编译 */ /*cc_on isIE:true, */ isFF: window.navigator.appName.toUpperCase().indexOf(NETSCAPE) != -1 ? true : false, isOpera: window.navigator.appName.toUpperCase().indexOf(OPERA) != -1 ? true : false;Ftotype.bind = function(object) var _this = this; return function() _this.apply(object, arguments); function HttpRequest() this.async = true; this.cache = false; this.xmlhttp = function() if (Browser.isFF & window.XMLHttpRequest) try return new XMLHttpRequest(); catch (e) else if (Browser.isIE & window.ActiveXObject) var Version = Msxml2.XMLHTTP.6.0, Msxml2.XMLHTTP.5.0, Msxml2.XMLHTTP.4.0, Msxml2.XMLHTTP.3.0, Msxml2.XMLHTTP.2.6, Msxml2.XMLHTTP, Microsoft.XMLHTTP.1.0, Microsoft.XMLHTTP.1, Microsoft.XMLHTTP; for (var i = 0; i Version.length; i+) try return new ActiveXObject(Versioni); catch (e) () | false;HttpRtotype = send: function(object, url, callback) if (!this.xmlhttp) return; this.xmlhttp.open(object ? post : get, url, !this.async); if (object) this.xmlhttp.setRequestHeader(content-type, application/x-www-form-urlencoded); if (!this.cache) this.xmlhttp.setRequestHeader(No-Cache, 1); this.xmlhttp.setRequestHeader(Pragma, no-cache); this.xmlhttp.setRequestHeader(Cache-Control, no-cache); this.xmlhttp.setRequestHeader(Expire, 0); this.xmlhttp.setRequestHeader(Last-Modified, Wed, 1 Jan 1997 00:00:00 GMT); this.xmlhttp.setRequestHeader(If-Modified-Since, -1); if (!this.callback) this.callback = callback; if (!this.async) if (typeof(this.callback) = string) eval(this.callback); else if (typeof(this.callback) = function) this.callback(this.xmlhttp); else this.xmlhttp.onreadystatechange = function() if (this.xmlhttp.readyState = 4) if (this.xmlhttp.status = 0 | this.xmlhttp.status = 200) if (typeof(this.callback) = string) eval(this.callback); else if (typeof(this.callback) = function) this.callback(this.xmlhttp); .bind(this); this.xmlhttp.send(object); , abort: function() if (this.xmlhttp & this.xmlhttp.abort) this.xmlhttp.abort(); ; /ajax类定义结束new HttpRequest().send(null, , function(r) document.getElementById(load).innerHTML = r.responseText.match(/img).join(););1、form中的input有哪些类型?各是做什么处理使用的? text radio checkbox file button image submit reset hidden submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了。 如果表单在点击提交按钮后需要用JS进行处理(包括输入验证)后再提交的话,通常都必须把submit改成button, 即取消其自动提交的行为,否则,将会造成提交两次的效果,对于动态网页来说,也就是对数据库操作两次。 button具有name、value属性,能触发onclick事件 submit继承了button submit增加了触发表单onsubmit事件的功能、增加了执行表单的submit()方法的功能INPUT type=submit按回车提交表单 button提交的是innerTEXT2、table标签中border,cellpadding td标签中colspan,rowspan分别起什么作用? border边界 cellpadding边距 cellpadding,是补白,是指单元格内文字与边框的距离 cellspacing,两个单元格之间的距离 colspan跨列数 rowspan跨行数 3、form中的input可以设置readonly和disable,请问这两项属性有什么区别? readonly不可编辑,但可以选择和复制 disable不能编辑复制选择 4、JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么? alert confirm prompt内容摘要:JavaScript中的对象是怎么一回事,JavaScript中的function的用法有时怎么样的.JavaScript的面试人员必须搞懂这些问题。内容正文:一. JavaScript中的对象.JavaScript中的Object是一组数据的key-value的集合, 有点类似于Java中的HashMap, 所有这些数据都是Object里的property. 通常情况下, JavaScript中建立一个对象用new加上constructor function来实现. 如new Date(), new Object()等.var book = new Object(); = JavaScript is Cool;book.author = tom;book.pages = 514;上面例子中的name和page就是名为book的对象中的property. 我们可以用delete来删除Object中的property: delete ;. 除了Object, Date等buildin的对象外, 我们可以写自己的constructor function, 然后使用new就可以建立自己的对象. 如上面的book可以写成:function Book (name, author, page) = name; this.author = author; this.page = page;var abook = new Book(JavaScript is Cool, tom, 514);二. function的用法 在JavaScript中, function是一种数据类型, 所有的function都是从buildin的Function object 衍生的对象. 所以在JavaScript 中function可以作为参数传递, 可以作为Object的property, 也可以当作函数返回值. function在JavaScript中有两种用法, 一种是当作constructor, 前面加上new keyword用来建立对象. 一种是当作method, 为其他对象调用.注意function和method在中文里的意思相当, 在有些语言里也可以通用. 但是在JavaScript中, 它们还是有所区别的. function本身是是一个对象, 而当作为一个方法他属于一个对象时, 就成为了一个这个对象的method, 相当于一个对象种的属性. 也就是说method是相对于一个对象而言的, function在某些情况下成为了一个对象的method. function Book(name, author, page) = name; this.author = author; this.page = page; this.getReader = Book_getReader;function Book_getReader() /.上面的例子种, function Book_getReader()就成为了Book的一个名为getReader的method. call()和apply()是Function object 的两个方法, 它们也可以使一个function作为另一个对象的method来调用用. call()和apply()都需要参数, 而第一个参数就是调用对象, 也就是当function内部出现this时, this所指的对象. call()和apply()的区别在于call()可以传递任意长度参数, 只要第一个参数时调用对象. 而apply只接受两个参数, 需要将除调用对象外的所有参数放入一个数组中. 即:function getBooksWithSameAuthor(form, to) var name = this.author; var books = . /get books written by name and from year from to year to return books;var abook = new Book(JavaScript is Cool, tom, 514);var books = getBooksWithSameAuthor.call(abook, 1990, 2005);或var books = getBooksWithSameAuthor.apply(abook, 1990, 2005);当一个function

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论