js学习笔记5
16.constructor 属性
每一个对象都有一个constructor属性,它引用初始化这个对象的构造函数。
例如:var date=new Date();
if(date.constructor==Date) //Result true
也可以写成 两个等同:
if(date instanceof Date) //Result true
17.hasOwnProperty() 方法:返回一个布尔值,指出一个对象是否具有指定名称的属性。
var book={name:'javaScript'};
if(book.hasOwnProperty("name")) //Result true;
if(book.hasOwnProperty("title")) //Result false;
18. propertyIsEnumerable() 方法:返回 Boolean 值,指出所指定的属性是否为一个对象的一部分以及该属性是否是可列举的。
var book={name:'javaScript'};
if(book.propertyIsEnumerable("name")) //Result true;
if(book.propertyIsEnumerable("title")) //Result false;
总结:propertyIsEnumerable()方法与hasOwnProperty() 返回相同的结果。
19.isPrototypeOf() 方法:
var d = new Date(); //初始化变量。
return (Date.prototype.isPrototypeOf(d)); //返回 true。
相当于:d instaceof Date //rerurn true
d.constructor==Date //rerurn true
20.P136 7.5 Array 数组下标必须是大于等于0并小于2的32次方-1的整数,如果数字过大或者使用负数、浮点数(布尔类型、对象或者其他值)
javaScript自动转换成字符串作为对象的属性名字。
例子:a[-3.14]=true; //创建的是a的属性名字为-3.14 而不是下标为-3.14
21. Array sort();
var array=new Array(33,4,1111,22,1);
alert(array.sort()); //return 1,1111,22,33,44 sort() 放没有带参数 按照字母顺序从小到大排序
alert(array.sort(function(a,b){
return a-b; //return 1,4,22,33,1111
}));
/** 从小到大排序
var i=0;
这里面的a和b相当于数组array[i++] 和array[i]
a-b>0 就把b所在的数组位置和a所在的位置互换
a-b<0 就把b所在的数组位置和a所在的位置不变
a-b==0 它们的顺序相等
*/
/** 从大到小排序
alert(array.sort(function(a,b){
return (a*-1)-(b*-1); //return 1,4,22,33,1111
}));
*/