JavaScript经典学习笔记总结_第1页
JavaScript经典学习笔记总结_第2页
JavaScript经典学习笔记总结_第3页
JavaScript经典学习笔记总结_第4页
JavaScript经典学习笔记总结_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

0、在Javascript中没有函数(重载)的概念1、在js中为某个对象(控件)绑定事件通常可以采取两种手段: 1》<inputtype=”input”onclick=”clickHandler()”> 2><inputtype=”button”id=”button1”> <scripttype=”text/javascript” Varv=document.getElementById(“button1”); v.onclick=clickHandler; </script>2、有两种类型的Cookie 1>持久性Cookie,会被存储到客户端的硬盘上。 2>会话Cookie,不会存储到客户端的硬盘上,而是放在浏览器进程所处的内存当中,当浏览器关闭则该会话Cookie就销毁了。3、在JavaScript中,函数(function)就是对象。4、在JavaScript中有一个Function对象,所有自定义的函数都是Function对象类型的。Function对象接收的所有参数都是字符串类型的,其中最后的一个参数就是要执行的函数体,而前面的参数则是函数真正需要接收的参数。varadd=newFunction(“number”,”number1”,”alert(number+nubmer1)”);add本身是Function函数对象的引用。 varadd=newFunction("m","n","varo=newPerson('qqqqq','wwww');o.sayHello();"); add("qweqwe","123123"); functionPerson(username,password){ this.username=username; this.password=password; Ptotype.sayHello=function(){ alert(this.username+""+this.password); } }5、在JavaScript中,每个函数都有一个隐含的对象arguments,表示给函数实际传递的参数。 arguments.length,length属性表示实际给函数传递的参数个数。 functionadd(){ if(1==arguments.length){ alert(arguments[0]);}elseif(2==arguments.length){ alert(agruments[0]+agruments[1]);}}6、每个函数对象都有一个length属性,表示该函数期望接收的参数个数。他与函数的arguments不同,arguments表示函数实际接收的参数个数,函数名.length期望接收参数的个数。7、JavaScript中有五种原始数据类型:Undefined,Null,Boolean,Number以及String8、Undefined数据类型的值只有一个:undefined。9、Null数据类型的值只有一个:null。10、Boolean数据类型的值有两个:true和false11、JavaScript中没有char字符数据类型,所以单引号和双引号都表示字符串数据类型12、typeof是一元运算符,后跟变量的名称,用于获取变量的数据类型,其返回值有5个:undefined、boolean、number、string以及object。验证变量是否为原始数据类型vars=“hello”;//s是原始数据类型alert(typeofs);vars1=newString(“123”);//对象数据类型 alert(typeofs1);13、在JavaScript中,如果函数没有声明返回值,那么会返回undefined。14、null与undefined的关系:undefined实际上是从null派生出来的。15、强制类型转换:在JavaScript中有3中强制类型转换,Boolean(value)、Number(value)、String(value)。vars=String(“hello”);alert(typeofs);//string16、在JavaScript中,对于函数中定义的变量来说,加var表示局部变量,不加var表示的是全局变量。17、在JavaScript中,所有的对象都是从Object对象继承来的。Object中的属性是不可枚举的,因此无法通过for……in语句得到其中的属性。 varobject=newObject(); for(varIinobject){ alert(i);}alert(pertyIsEnumerable(“prototype”));//判断对象是否有枚举的属性。JavaScript中最顶层的对象是window对象,浏览器窗口对象。for(varvinwindow){ alert(v);//打印window的所有属性。}18、在Javascript中,可以动态添加对象属性,也可以动态删除对象属性。varobject=newObject();alert(object.username);//undefined//如果给对象添加属性并赋值共有两种方式(.和[“”])。注意下::::object.username=“shengsiyuan”;object[“username”]=”shengsiyuan”;//有点像EL表达式。alert(object.username);//如果想要从对象中删除执行的属性,如下deleteobject.username;//username属性从object对象中被删除。alert(object.username);在JavaScript中定义对象的最常见的方式,也是开发中常用的。 varobject={username:“zhangsan”,password:”123”}; alert(object.username+object.password);小例子:Jquery.ajax({ url:elem.a,aysnc:false});19、在JavaScript中,数组中的sort方法来说,他会将待排序的内容转换为字符串(调用toString()方法),按照字符串的先后顺序进行排序。 vararray=newArray(); array.push(1);array.push(2);alert(array.length);最常用如下:vararray=[1,3,25];array.sort();//如上说明,内部是转换为字符串排序的。alert(array);functioncompare(num,num1){ vartemp=parentInt(num); vartemp1=parentInt(num1); if(temp<temp1){ return-1;}elseif(temp==temp1){ Return0;}elseif(temp>temp1){ Return2;}}array.sort(compare);//排序函数对象的引用。alert(array);//匿名函数 function(){}20、JavaScript中定义对象的几种方式(JavaScript中没有类得概念,只有对象) 1》基于已有对象扩充其属性和方法 varobject=newObject(); ="zhangsan"; object.sayName=function(name){ =name; alert();} object.sayName('lisi');object.sayName(“lisi”);2>工厂方式}//工厂方式创建对象functioncreateObject(){ varobject=newObject(); object.username=“zhangsan” object.password=“123”; object.get=function(){ alert(this.username+“,”+this.password); } returnobject;varobject1=newObject();varobject2=newObject();object1.get();让一个函数对象被多个对象所共享,而不是每个对象拥有一个函数对象 functionget(){ alert(this.username+this.password);}functioncreateObject(username,password){ varobject=newObject(); object.username=username; object.password=password; object.get=get; returnobject;}varobject=createObject("z","123");varobject2=createObject("x","123");object.get();object2.get();3》构造函数无参数或者带参数functionPerson(username,password){ //在执行第一行代码之前,js引擎会为我们生成一个对象 this.username=username; this.password=password; this.getInfo=function(){ alert(this.username+“,”+this.password);}//此处会有一个隐藏的return语句,用于将之前生成的对象返回。}4》使用Prototype(原型定义)创建对象 functionPerson(){ } Ptotype.username=“zhangsan”; Ptotype.password=“123”; Ptotype.getInfo=function(){ Alert(this.username+“,”+this.password); } varperson=newPerson();varperson1=newPerson();person.username=“lisi”;prson.getInfo();prson1.getInfo();单纯使用原型方式定义类无法在构造函数中为属性赋初值,只能在对象那个生成后再去改变属性值。如果使用原型方式对象,那么生成的所有对象共享原型中的属性,这样一个对象改变了该属性也会反映到其他对象中。Array例子P1Person() username=newArray();共享同一个引用的值。P2 Person()password

不错的解决方案如下://使用原型方式+构造函数方式来定义对象,每个对象之间的属性互不干扰,两个对象之间共享同一个方法。functionPerson(){this.username=newArray();this.password=“123”;

}Ptotype.getInfo=function(){alert(this.username+“,”+this.password);}varperson=newPerson();varperson1=newPerson();person.username.push(“zhangsan”);person.username.push(“lisi”);person.getInfo();person1.getInfo();5》动态原型方式定义对象在构造函数总通过标志量让所以对象共享一个方法,而每个对象拥有自己的属性。FunctionPerson(){This.username=“zhangsan”;This.password=“123”;If(typeofPerson.flag==“undefined”){Alert(“invoked”);Ptotype.getInfo=function(){Alert(this.username+this.password);}Person.flag=true;}}Varp=newPerson();Varp2=newPerson();p.getInfo();p2.getInfo();21、JavaScript中的继承1》对象冒充functionParent(username){this.username=username;this.sayHello=function(){alert(this.username);}}functionChild(username,password){//下面三行代码是最关键的代码this.method=Parent;//定义method属性,将Parent函数指定给methodthis.method(username);//Parent函数中的this指的是该Child对象deletethis.method;this.password=password;this.sayWorld=function(){alert(this.password);}}varparent=newParent(“zhangsan”);varchild=newChild(“lisi”,”123”);parent.sayHello();child.sayHello();child.sayWorld();2》call调用方式Call方法是Function对象中的方法,因此我们定义的每个函数都拥有该方法。可以通过函数名来调用call方法,call方法的第一个参数会被传递给函数中的this,从第2个参数开始,逐一赋值给函数中的参数。//继承的第二种方式,call方法方式,Function对象中的方法。functiontest(str){alertI(this.username+str);}Varo=newObject();o.username=“zhangsan”;test.call(o,”xxx”);3》使用appl

温馨提示

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

评论

0/150

提交评论