javascript基础

<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获取鼠标指针在客户端的位置。














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值