您好,欢迎访问三七文档
每当你在全局作用域中使用“this”关键字时(没在函数内部),它通常指向全局对象(globalobject)。JavaScript对象继承一瞥functionPeople(age){this.age=age;this.getAge=function(){returnthis.age};}varp1=newPeople(20);//People的实例1varp2=newPeople(40);//People的实例2js采用了牺牲时间,获取空间的方法,js引入了原型理念,将方法放入原型中:functionPeople(age){this.age=age}People.prototype.getAge=function(){returnthis.age};CSS3如何实现旋转图片:transform:rotate;setTimeout和setInterval的区别:setTimeout指定在某时间段后调用一次,setInterval调用多次;用setTimeout如何调用多次:在回调函数里再次调用setTimeout;JavaScript怎么处理异常:throw和catchJSON和XML的优缺点:JSON和JavaScript的Object关联更大,没有特殊需求就用JSON。XML应该是有特殊需求的时候再用的吧?JSON的编码更为清晰且冗余更少些,而XML比较适合于标记文档。JSON网站提供了对JSON语法的严格描述,只是描述较简短。JSON更适于进行数据交换处理。编码可读性之间的区别XML有明显的优势,毕竟人类的语言更贴近这样的说明结构。JSON读起来更像一个数据块,读起来就比较费解了。不过,我们读起来费解的语言,恰恰是适合机器阅读。三、XML的优缺点优点:1.格式统一,符合标准2.容易与其他系统进行远程交互,数据共享比较方便。3.调用将XML用作传输的现有服务。4.使用XSLT可以动态转换XML。这是企业服务总线(ESB)方案中的理想功能。缺点:1.XML文件格式文件庞大,格式复杂,传输占用带宽2.服务器端和客户端都需要花费大量代码来解析XML,不论服务器端和客户端代码变的异常复杂和不容易维护3.客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码4.服务器端和客户端解析XML花费资源和时间四、JSON的优缺点优点:1.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小,浏览器解析快2.易于解析这种语言,客户端JavaScript可以简单的通过eval()进行JSON数据的读取3.构造友好,支持多种语言,包括ActionScript,C,C#,ColdFusion,Java,JavaScript,Per,PHP,Python,Ruby等语言服务器端语言,便于服务器端的解析4.在PHP世界,已经有PHP-JSON和JSON-PHP出现了,便于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能够直接生JSON格式,便于客户端的访问提取5.因为JSON格式能够直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,但是完成的任务不变,且易于维护6.相当稳定。JSON的附加内容将成为超集缺点:1.没有XML格式这么推广的深入人心和使用广泛,没有XML那么通用性2.JSON格式目前在WebService中推广还属于初级阶段JavaScript面向对象基础:对象是JavaScript的基础。JavaScript的大部分功能都是基于对象的。从最基本的层次而言,对象是一系列属性的集合。//创建一个新的Object对象,存放在'obj'变量中varobj=newObject();//给这个对象设置一个属性obj.val=5;obj.click=function(){alert(hello);};//简写方式,键值对(key/valuepair)来定义属性varobj={//用键值对(key/valuepairs)方式来设置属性名和属性值val:5,click:function(){alert(hello);}};2.对象的创建和大部分的其它面向对象的语言不同,JavaScript并没有类(class)的概念。其它面向对象语言大多需要实例化某个具体的类。但JavaScript不同,JavaScript里对象本身可以用来创建新对象,而对象也可以继承自其它对象。这个概念称为原型化继承(prototypalinheritance)。不管JavaScript使用何种对象方案,首先还是应该有一个创建新对象的方法。JavaScript的做法是,任何函数都可以被实例化为一个对象。constructor属性在每个对象中都存在,并一直指向创建它的函数。这样就可以有效地复制对象,用同一个基类创建对象并赋予不同的属性。//创建一个新的简单的User对象functionUser(){}//创建一个User对象varme=newUser();//用前一个对象的constructor引用来创建对象varyou=newme.constructor();//这两个对象的constructor实质上是一致的alert(me.constructor==you.constructor);3.公共方法(publicmethod)在对象的上下文中是最终用户始终可以接触到的。要实现这种在对象的每个实例都可以使用的公共方法。必须了解prototype(原型)的属性,这个属性包含一个对象,该对象可以作为所有新副本的基引用(basereference)。本质上说,所有对象原型的属性都能在该对象的每个实例中找到。因为对象的原型仍然是对象,和其他任何对象一样,可以给它添加新的属性。给原型加属性的结果是由该原型实例化的每个对象都会获得这些属性,也就使这些属性公有化了。//创建一个新的User构造函数functionUser(name,age){this.name=name;this.age=age;}//将一个新函数加到对象的prototype对象中User.prototype.getName=function(){returnthis.name;};//再次给prototype对象添加一个函数User.prototype.getAge=function(){returnthis.age;};//实例化一个新的User对象varuser=newUser(Bob,44);//添加的这两个属性都在刚才创建的对象中,并且有合适的上下文alert(user.getName()==Bob);alert(user.getAge()==44);4.私有方法私有方法(privatemethod)和私有变量只允许其他的私有方法、私有变量和特权方法访问。这种方法可以定义一些只让对象内部访问,而外部访问不到的代码。//表示教室的一个对象构造函数functionClassroom(students,teacher){//用于显示班级所有学生的私有方法functiondisp(){alert(this.names.join(,));}//将班级数据存入公共属性中this.students=students;this.teacher=teacher;//调用私有方法来显示错误disp();}//创建一个新的classroom对象varclass=newClassroom([John,Bob],Mr.Smith);//调用disp方法会失败,因为它不是该对象的公共方法class.disp();endjQuery:$.each()函数不同于JQuery对象的each()方法,它是一个全局函数,不操作JQuery对象,而是以一个数组或者对象作为第1个参数,以一个回调函数作为第2个参数。回调函数拥有2个参数:第1个为对象的成员或数组的索引,第2个为对应变量或内容。JQuery中$.ajax()方法参数详解:url:要求为String类型的参数,(默认为当前页地址)发送请求的地址。type:要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。timeout:要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局设置。async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行。cache:要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false)。设置为false将不会从浏览器缓存中加载请求信息。data:要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将自动转换为字符串格式。get请求中将附加在url后。防止这种自动转换,可以查看processData选项。对象必须为key/value格式,例如{foo1:bar1,foo2:bar2}转换为&foo1=bar1&foo2=bar2。如果是数组,JQuery将自动为不同值对应同一个名称。例如{foo:[bar1,bar2]}转换为&foo=bar1&foo=bar2。dataType:要求为String类型的参数,预期服务器返回的数据类型。如果不指定,JQuery将自动根据http包mime信息返回responseXML或responseText,并作为回调函数参数传递。可用的类型如下:xml:返回XML文档,可用JQuery处理。html:返回纯文本HTML信息;包含的script标签会在插入DOM时执行。script:返回纯文本JavaScript代码。不会自动缓存结果。除非设置了cache参数。注意在远程请求时(不在同一个域下),所有post请求都将转为get请求。json:返回JSON数据。jsonp:JSONP格式。使用SONP形式调用函数时,例如myurl?callback=?,JQuery将自动替换后一个“?”为正确的函数名,以执行回调函数。text:返回纯文本字符串。beforeSend:要求为Function类型的参数,发送请求前可以修改XMLHttpRequest对象的函数,例如添加自定义HTTP头。在beforeSend中如果返回false可以取消本次ajax请求。XMLHttpRequest对象是惟一的参数。function(XMLHttpRequest){this;//调用本次ajax请求时传递的options参数}complete:要求为Function类型的参数,请求完成后调用的回调函数(请求成功或失败时均调用)。参数:XMLHttpRequest对象和一个描述成功请求类型的字符串。function(XMLHttpRequest,textStatus){this;//调用本次ajax请求时传递的options参数}success:要求为Function类型的参数,请求成功后调用的回调函数,有两个参数。(1)由服务器返回,并根据dataType参数进行处理后的数据。(2)描述状态的字符串。function(data,textStatus){//data可能是xmlDoc、jsonObj、html、text等等this;//调用本次ajax请求时传递的options参数error:要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错误信息、捕获的错误对象(可选)。ajax事件函数如下:function(XMLHttpRequest,textStatus,errorThrown){//通常情况下textStatus和errorThrown只有其中一个包含信息this;//调用本次ajax请求时传递的options参数}contentType:要求为String类型的参数,当发送信息至服
本文标题:前端面试题
链接地址:https://www.777doc.com/doc-3084092 .html