2008-05-13
javascript特性一(备忘)
关键字: javascript特性一(备忘)
1.js不支持重载,因为js里的函数都是一个对象,js里有个隐含对象Function,所有的js函数都是一个Function类型的对象。比如:
等价于
由于js里每一个函数里都隐含一个对象叫arguments,该arguments是一个数组,通过arguments可以获得到实际传递参数的个数(arguments.length)及实际传递参数的值(arguments[0],arguments[1]...)
所以可以通过arguments对象来模拟重载,如下:
2.每个函数的名字都有一个属性叫length,“属性名.length ”获得该函数能接受参数的个数。
如:
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.
如:
6.
7.null与undefined的关系:undefined实际上从null派生而来
8.对于函数定义中的变量来说,加var表示局部变量,不加var表示全局变量
9.javascript里 ,Object类是所有类的父类,类的强制转换有三种:Boolean(value),Number(value),String(value)
Object 对象有个方法叫:propertyIsEnumerable("属性名")
所以所有子类都有该方法,如果 "对象.propertyIsEnumerable("属性名")"为true,则表示该属性可以通过for(var temp in 对象的实例名)来进行遍历出来。
如:
Object对象里的所有属性propertyIsEnumerable都为 false
可以把o改为内置window对象,就可以打印出来很多了。
10.定义对象后增加属性或删除属性
function add(number)
{
alert("hello");
}
等价于
var add = new Function("number","alert('hello');");
由于js里每一个函数里都隐含一个对象叫arguments,该arguments是一个数组,通过arguments可以获得到实际传递参数的个数(arguments.length)及实际传递参数的值(arguments[0],arguments[1]...)
所以可以通过arguments对象来模拟重载,如下:
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 ”获得该函数能接受参数的个数。
如:
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.
如:
function test()
{
var a = "aa";
}
alert(test());//undefined
alert(test);//function test(){ var a = "aa";}
对于函数来说,如果其不返回值,那么其返回值就为undefined
6.
var s ;//变量s1未定义 alert(typeof s);//undefined alert(typeof s1);//undefined alert(s);//undefined alert(s1);//报错
7.null与undefined的关系:undefined实际上从null派生而来
alert(undefined == null);//true
8.对于函数定义中的变量来说,加var表示局部变量,不加var表示全局变量
9.javascript里 ,Object类是所有类的父类,类的强制转换有三种:Boolean(value),Number(value),String(value)
Object 对象有个方法叫:propertyIsEnumerable("属性名")
所以所有子类都有该方法,如果 "对象.propertyIsEnumerable("属性名")"为true,则表示该属性可以通过for(var temp in 对象的实例名)来进行遍历出来。
如:
var o = new Object();
alert(o.propertyIsEnumerable("prototype"));//false,说明prototype是不可以通过for(var temp in )进行遍历出来的
Object对象里的所有属性propertyIsEnumerable都为 false
var o = new Object();
for(var temp in o)
{
alert(temp); //一个都不会打印出来
}
可以把o改为内置window对象,就可以打印出来很多了。
10.定义对象后增加属性或删除属性
var o = new Object(); o.name="test"; alert(o.name);//test delete o.name; alert(o.name);//undefined
发表评论
- 浏览: 90778 次
- 性别:

- 来自: 杭州

- 详细资料
搜索本博客
我的相册
bbbb
共 3 张
共 3 张
最近加入圈子
最新评论
-
hibernate知识小结
谢谢!!正好delete那个地方没弄懂!以为delete之后还是持久态!!现在基 ...
-- by 410228573 -
hibernate------HQL总结
谢谢,学习了!
-- by gdjbj2008 -
Extjs2.0---继承
Ext.extend(SubClass,BaseClass,{ ...
-- by yunhaifeiwu -
修改Eclipse注释里的${Da ...
找到eclipse.ini 里面有-Duser.language=en 改为-D ...
-- by duooluu -
sqlserver2005获取连接失 ...
...
-- by gordanmao






评论排行榜