- o.constructor
- o.toString()
- o.valueOf() 返回对象o自己的值
>>> var a = new Array(1,2,3,'four');
>>> typeof a; // object
>>> a.toString(); //"1,2,3,four";
>>> a.valueOf(); //[1,2,3,"four"]
>>> a.constructor; //Array()
Array()
- push(),向数组尾追加新值
- pop(),删除数组尾元素
- sort(),排序数组.采用冒泡排序算法
- join(),返回一个用传递参数连接所有数组元素的string.
- var a = new Array(1,2,3);
- a.join('|');
- a; //1|2|3
- slice(),两个参数,第一个是起始位置,第二个是结束位置.两个参数都是从0开始.返回截取的字符串.原数组并没有变.
- splice(),截取+替换,前两个参数是截取范围.后面其他的参数是替换的内容
Function
- length,返回函数参数的个数
- function myfunction(a,b,c){ return true;}
- myfunction.length; //3
- caller,谁调用了这个函数.
function A() { return A.caller; }
function B() { return A; } //调用了A()
B(); //B()
若A在全局被调用,则A.caller = null.
- toString(),这个方法返回函数体的全部代码.
- call(),apply(),允许自己的对象从别的对象处借用方法,并且调用这个方法.这样呢给你充分的代码复用.
some_obj.someMethod.call(my_obj,'a','b','c'...);
call()方法能传递这样的参数,第一个参数是需要调用别的对象方法的对象名,后面的参数是是传递给这个方法的.这时原本在some_obj中,指向some_obj的this将会指向my_obj.注意,若cal后面不传参数或则传递了null.则this将只想全局,方法中涉及到的参数将会去全局中寻找.
some_obj.someMethod.apply(my_obj,['a','b','c'...]);
apply()与call()的区别仅在于传递的参数,apply需要传递一个数组形式的参数.
- arguments
返回函数中传递的参数,arguments看起来像数组,但事实上它只是一个看起来像数组的对象,因为它同样拥有下标和length属性,但它并没有数组的slice或则sort方法.arguments拥有自己的NB的属性--callee.
the callee property.
This contains a reference to the function being called. If you create a function
that returns arguments.callee and you call this function, it will simply return a
reference to itself.
>>> function f() { return arguments.callee;}
>>> f(); //f()
一个有趣的应用:让self-invoking function执行多次.
(
function(count){
if (count < 5) {
alert(count);
arguments.callee(++count);
}
}
)(1);
将会提示1,2,3,4
Boolean
- 一个对象,即使是空对象也是真的.
Number
- toString(),接受参数,把数据转换成相应的进制.
String
- length属性
- 这样创建的两个string是有区别的:
>>> var obj = new String('world'); //typeof is Object
>>> var primitive = 'Hello'; //typeof is string
特别地,一个空对象是true,但是一个空string却是false:
>>> Boolean(""); //false
>>> Boolean(new String("")); //true
- toUpperCase()
- toLowerCase()
- charAt(),返回索引.
- indexOf(),返回第一次匹配的位置.下标从0开始记.若传递第二个参数s.indexOf('a',2)将会返回a第二次出现的位置//除了寻找单个的字符外,还可以查找一个短语或则句子.若找到则返回大于或等于0的位置,未找到则返回-1 ,故用if语句判断是否找到的时候应该是判断是否 != -1
- lastIndexOf()返回最后一个匹配的位置
- slice(),substring(),返回截取的片段,两个参数.起始和结束.区别在于:当传递[1,-1]这种区间时,slice()会截取整个字符串,而substring()则把[1,-1]当成[0,0];
- split(),根据传递的分割符,把字符欻分割成为相应的数组.
- concat(),把两个字符串接到一起.和 "+"的功能差不多.只是concat()不会改变原字符串,只是返回连接以后的新值
Math:属性都是大写的
- Math.PI; //3.14....
- Math.SQRT2; //1.4..开根号
- Math.E
- Math.LN2
- Math.random();返回0-1的随机数.若别的范围:100*Math.random()+2
- ((max - min) * Math.random()) + min
- Math.round();
- Math.floor();
- Math.ceil();
- Math.pow(a,b);
- Math.sqrt(a);
Date
- var d = new Date(); //Fri Mar 29 2013 12:11:20 GMT+0800 (CST)
- var d = Date(); //"Fri Mar 29 2013 12:13:24 GMT+0800 (CST)"
- d.setMonth();
- d.getMonth();
RegExp
- test();正则匹配返回true或false
- match(),返回一个匹配的数组
- serch()返回第一次匹配的位置
- replace(),替换匹配的内容
- split(),接受正则的参数来分割字符串成数组
Error Objects
try{
//不确定是否会报错的内容;
} catch(e){
//若try的内容出错了,则执行这里的内容
} finally{
//再执行这里的东西
}