javascript基础

来源:互联网 发布:msdb系统数据库 编辑:程序博客网 时间:2024/05/17 01:44
<script type="text/javascript">var accumulator={add:function(a,b)  {return a+b;  },mius:function(a,b) {   return a-b; }  };alert(accumulator.add(3,4));</script>
将会弹出7。

Object对象

hasOwnProperty(property):判断该对象是否有某个特定的属性。

isPropertypeOf(property):判断该对象是否是另外一个对象的原型。

toString():返回对象的原始字符串显示。

valueOf():返回最适合该对象的原始值。

toFixed(val):返回具有指定位数val的数字字符串。

String截取子字符串:slice()和substring()

当传入的参数都为整数的时候。两个方法的返回值相同,而当参数中含有负数的时候,slice()会用字符串的长度加上参数,而substring()则会将负数作为0处理,并且总是将较小位做起始位,较大位做末尾。

var str="hello";alert(str.slice(-3)); //将弹出"llo"alert(str.substring(-3));  //将弹出hello

delet将会删除对以前定义的对象属性或方法的调用。

var person=new Object();person.name="xuzengqiang";alert(person.name);delete person.name;alert(person.name); //将会弹出undefined

对象的创建,原型方式:

function Person(name,age){this.name=name;this.age=age;}Person.prototype.showPerson=function(){alert(this.name+"----"+this.age);}var person1=new Person("xuzengqiang","22");if(person1 instanceof Person){person1.showPerson();}

扩展多个方法可以这样写:

function Person(name,age){this.name=name;this.age=age;}Person.prototype={showPerson:function(){alert(this.name+"----"+this.age);},test:function(){if(this.age>=18 && this.age<=30){alert("你是成年人了!");} else {alert("你还不是成年人!");}}}var person1=new Person("xuzengqiang","22");if(person1 instanceof Person){person1.showPerson();person1.test();}

编写StringBuffer,与String本身字符串拼接做性能测试。

function StringBuffer(){this._string=new Array();};StringBuffer.prototype={append:function(str){this._string.push(str);},toString:function(){return this._string.join("");}};var buffer=new StringBuffer();//性能测试var startTime=new Date();for(var i=0;i<100000;i++){buffer.append("test");}var endTime=new Date();alert("StringBuffer用时:"+(endTime.getTime()-startTime.getTime())+"ms");var str=new String();startTime=new Date();for(var i=0;i<100000;i++){str+="test";}endTime=new Date();alert("String用时:"+(endTime.getTime()-startTime.getTime())+"ms");
在不考虑其它环境的影响下,StringBuffer相比String进行字符串拼接效率要高。

继承

方式一:对象冒充。构造函数使用this关键字给所有属性和方法赋值。

function  Person(name){this.name=name;this.say=function(){alert(this.name);}}function Man(name){this.newPerson=Person;this.newPerson(name);delete this.newPerson;}var man=new Man("xuzengqiang");man.say();

对象冒充可以实现多重继承。

方式二:利用apply()和call()方法。

call(arg1,arg2,[arg3.....]);第一个参数是作用this对象,其它参数都是直接传递给参数本身。

function  Person(name){this.name=name;this.say=function(){alert(this.name);}}function Man(name){Person.call(this,name);}var man=new Man("xuzengqiang");man.say();

apply(arg1,arg2):第一个参数用作this对象,第二个参数是传递给函数的参数数组。

function  Person(name){this.name=name;this.say=function(){alert(this.name);}}function Man(name){Person.apply(this,new Array(name));}var man=new Man("xuzengqiang");man.say();

方式三:原型链方式,直接将一个对象的实例赋给子类的原型。但是要确保构造函数中没有任何参数,才是原型链的标准方法。

function  Person(){}Person.prototype.name="xuzengqiang";Person.prototype.say=function(){alert(this.name);}function Man(){}Man.prototype=new Person();var man=new Man();man.name="wuyue";man.say();

方式四:混合方式:原型链+apply()/call()方法

function  Person(name){this.name=name;}Person.prototype.say=function(){alert(this.name);}function Man(name,age){Person.call(this,name);}Man.prototype=new Person();Man.prototype.show=function(){alert(this.age);}var man=new Man("xuzengqiang","22");man.say();

事件处理event,event必须作为唯一参数传递给事件处理函数。

IE和其他浏览器相同的事件。

1、获取事件类型.event.type(将返回如"click","mouseover"等类型的字符串)。

2、获取按键值:event.keyCode。

3、检测是否按下alt,shift,ctrl键(event.ctrlKey,event.shiftKey,event.altKey)。

4、获取客户端坐标,可以用clientX和clientY获取鼠标指针在客户端的位置。














0 0
原创粉丝点击