JavaScript特性总结

1.js不支持重载,因为js里的函数都是一个对象,js里有个隐含对象Function,所有的js函数都是一个Function类型的对象。比如:

Java代码 复制代码
  1. function add(number)   
  2. {   
  3.    alert("hello");   
  4. }  
function add(number)
{
   alert("hello");
}


等价于

Java代码 复制代码
  1. var add = new Function("number","alert('hello');");  
var add = new Function("number","alert('hello');");



由于js里每一个函数里都隐含一个对象叫arguments,该arguments是一个数组,通过arguments可以获得到实际传递参数的个数(arguments.length)及实际传递参数的值(arguments[0],arguments[1]...)
所以可以通过arguments对象来模拟重载,如下:

Java代码 复制代码
  1. function add()   
  2. {   
  3.     if(arguments.length == 1)   
  4.     {   
  5.           alert(arguments[0] + 10);   
  6.     }   
  7.     if(arguments.length == 2)   
  8.     {   
  9.                alert(arguments[0] + arguments[1] + 10);   
  10.     }   
  11.                
  12.     }   
  13. }   
  14. add(5);   
  15. add(5,1);  
function add()
{
	if(arguments.length == 1)
	{
	      alert(arguments[0] + 10);
	}
	if(arguments.length == 2)
	{
               alert(arguments[0] + arguments[1] + 10);
	}
			
	}
}
add(5);
add(5,1);



2.每个函数的名字都有一个属性叫length,“属性名.length ”获得该函数能接受参数的个数。
如:

Java代码 复制代码
  1. function a1()   
  2. {   
  3. }   
  4. function a2(number)   
  5. {   
  6. }   
  7.            
  8. alert(a1.length);//0   
  9. alert(a2.length);//1  
function a1()
{
}
function a2(number)
{
}
		
alert(a1.length);//0
alert(a2.length);//1



3.JavaScript中有五种原始基本数据类型:Undefined,Null,Boolean,Number,String

Undefined数据类型的值只有一个:undefined

Null数据类型的值只有一个:null

Boolean数据类型的值只有两个:true,false

Number数据类型的值有很多:数字即可

String a = "hello";和String a = new String("hello");是不一样的。有点类似java里的对象。String a = "hello"只是在栈内存里生成,String a = new String("hello");则堆内存里生成"hello"值,栈内容里变量a指向堆内存。

4.typeof一元操作符,它的返回值有五个:undefined,boolean,number,string,object

5.alert(函数名)  是把该函数的函数名及函数体都给打印出来。方便调试 javascript.

如:

Java代码 复制代码
  1. function test()   
  2. {   
  3.     var a = "aa";   
  4. }   
  5. alert(test());//undefined   
  6. alert(test);//function test(){ var a = "aa";}   
  7. [color=red]对于函数来说,如果其不返回值,那么其返回值就为undefined[/color]  
function test()
{
    var a = "aa";
}
alert(test());//undefined
alert(test);//function test(){ var a = "aa";}
[color=red]对于函数来说,如果其不返回值,那么其返回值就为undefined[/color]



6.

Java代码 复制代码
  1. var s ;//变量s1未定义   
  2. alert(typeof s);//undefined   
  3. alert(typeof s1);//undefined   
  4. alert(s);//undefined   
  5. alert(s1);//报错  
var s ;//变量s1未定义
alert(typeof s);//undefined
alert(typeof s1);//undefined
alert(s);//undefined
alert(s1);//报错



7.null与undefined的关系:undefined实际上从null派生而来

Java代码 复制代码
  1. alert(undefined == null);//true  
alert(undefined == null);//true



8.对于函数定义中的变量来说,加var表示局部变量,不加var表示全局变量

9.javascript里 ,Object类是所有类的父类,类的强制转换有三种:Boolean(value),Number(value),String(value)

Object 对象有个方法叫:propertyIsEnumerable("属性名")
所以所有子类都有该方法,如果 "对象.propertyIsEnumerable("属性名")"为true,则表示该属性可以通过for(var temp  in  对象的实例名)来进行遍历出来。
如:

Java代码 复制代码
  1. var o = new Object();   
  2. alert(o.propertyIsEnumerable("prototype"));//false,说明prototype是不可以通过for(var temp in )进行遍历出来的  
var o = new Object();
alert(o.propertyIsEnumerable("prototype"));//false,说明prototype是不可以通过for(var temp in )进行遍历出来的


Object对象里的所有属性propertyIsEnumerable都为 false

Java代码 复制代码
  1. var o = new Object();   
  2. for(var temp  in  o)   
  3. {   
  4.     alert(temp);    //一个都不会打印出来    
  5. }  
var o = new Object();
for(var temp  in  o)
{
	alert(temp);	//一个都不会打印出来	
}



可以把o改为内置window对象,就可以打印出来很多了。


10.定义对象后增加属性或删除属性

Java代码 复制代码
  1. var o = new Object();   
  2. o.name="test";   
  3. alert(o.name);//test   
  4. delete o.name;   
  5. alert(o.name);//undefined   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值