1:引用类型很类似与面向对象中的类,引用类型的实例就类似于面向对象中的对象,但是实现方法不同。
2:Object类型是其他应用类型的“基类“,所有的应用类型都继承了其基本的属性和方法。例如:constructor,prototype;toString(),valueOf();
3:Array类型是一组值的有序列表,同时还提供了操作和转换这些值的方法。
4:Date类型提供了日期和时间的操作
5:RegExp类型提供正则表达式的相关操作
6:Function类型,每个函数都是function类型的实例,其也有属性和方法。
7:3种基本包装类型(特殊的引用类型),是string,boolean,number三种基本类型的抽象。在操作三种基本类型时,实质创建了该包装类型的对象,是对该对象进行操作。
8:单体内置对象,global和math,不依赖于宿主环境。在代码执行之前,就已经存在。global,在浏览器中以windows对象承担,所有全局变量和函数都是global对象。
Array(
http://www.w3school.com.cn/jsref/jsref_obj_array.asp
)
1:join(),以某个符号隔开数组元素。
tip: var a = ['a','b','c'];
alert(a.join('#')); //输出为:a#b#c#
2:slice(a,b),得到数组中的某个元素和某些元素。第二个参数可选
tip:var a = ['a','b','c','d'];
alert(a.slice(1)); //输出为:b
alert(a.slice(1,3)); //输出:b,c.包前不包后
3:splice(a,b,c,d);a,b必须,c,d可选。向数组中增加或者删除元素
tip:var a = ['a','b','c','d'];
alert(a.splice(1,1));//从第二个元素开始删除一个元素,输出a,c,d
alert(a.splice(1,1,'e'));//删除一个元素,并增加一个元素。输出为a,d,e
Boolean(
http://www.w3school.com.cn/jsref/jsref_obj_boolean.asp
)
1:使用new Boolean创建出来的是一个boolean对象,它的类型是object。
var falseObject = new Boolean(false);
var result = falseObject && true;
alert('1'+result); //true
alert('2'+falseObject);//false
alert('3'+falseObject.toString());//false
tip
var numberObject = new Number(10);
var numberValue = 99;
//使用toString,进制表示
alert(numberObject.toString()); //"10"
alert(numberObject.toString(2)); //"1010"
alert(numberObject.toString(8)); //"12"
alert(numberObject.toString(10)); //"10"
alert(numberObject.toString(16)); //"a"
//指定小数位数
alert(numberObject.toFixed(2)); //outputs "10.00"
//接受一个参数,表示数值的所有数字的位数
numberObject = new Number(99);
alert(numberObject.toPrecision(1)); //"1e+2"
alert(numberObject.toPrecision(2)); //"99"
alert(numberObject.toPrecision(3)); //"99.0"
alert(typeof numberObject); //object
alert(typeof numberValue); //number
alert(numberObject instanceof Number); //true
alert(numberValue instanceof Number); //false
1:ECMAScript 5中有新的api 获取当前的时间,Date.now();输出的是当前的时间戳
new Date();获取的是当前的日期和时间,被格式化(建议使用)。
2:使用new Date();接受两种类型的参数,Date.parse();Date.UTC()。等效于,new Date(year,month,day,min,s,ms),其中day,min,s,ms可省略
3:继承的方法,toString();toLocalString();不同的浏览器实现会不同
//2000年1月1日,0时0分0秒
var y2k = new Date(2000, 0);
alert(y2k.toString());
alert(y2k.toLocaleString());
//2005年4月5日,17时55分55秒
var allFives = new Date(2005, 4, 5, 17, 55, 55);
alert(allFives.toString());
alert(allFives.toLocaleString());
Function
1:函数名作为参数
function callSomeFunction(thefunction, para){
thefunction(para);
}
function add(para){
return (para + 10);
}
alert(callSomeFunction(add,10));//输出20
2:函数声明和函数表达式;
函数声明://声明位置无要求 函数表达式://声明必须在调用前
function fun(a){ var fun = function(a){
return (a + 10); return (a + 10);
} };
function compare(){
return function(a,b){
if(a>b){
return 1;
}else if(a<b){
return -1;
}else{
return 0;
}
}
}
var a = [4,6,8,21,7,6,3,4,1];
a.sort(compare());
alert(a); //输出1,3,4,4,6,6,8,21
4:apply方法:在当前特定的作用域下调用“父类”的方法(函数);
function add(a,b){
return (a+b);
}
function test(){
return add.apply(this,arguments);
}
alert(test(10,10)); //输出20
5:arguments,callee,caller:
在函数内部,arguments.callee该属性是一个指针,指向拥有这个arguments对象的函数。
caller,这个属性保存着调用当前函数的函数的引用,如果是在全局作用域中调用当前函数,它的值为null。
function
inner
(){
alert
(
arguments
.
callee
);
//指向拥有这个arguments对象的函数,即inner()
alert
(
arguments
.
callee
.
caller
);
//这个属性保存着调用当前函数的函数的引用,即outer()
}
function
outer
(){
inner
();
alert(arguments.callee.caller);//null
}
outer
();
6:bind();将函数的this值绑定到bind参数中
var color = "black";
function getColor(){
alert(this.color);
}
var test = {color:"white"};
alert(getColor.bind(test));// 输出:white
7:length:函数参数的个数
Global
global:可以直接使用的方法和属性
1:encodeURI,用于整个URI。对应的解码,decodeURI();
encodeURIComponent,用于编码查询字符串。对应的解码,decodeURIComponent();
tip:
var uri = "http://www.wrox.com/illegal value.htm#start";
//"http://www.wrox.com/illegal%20value.htm#start",空格被编码
alert(encodeURI(uri));
//"http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start",大部分字符都被编码
alert(encodeURIComponent(uri));
2:Windows对象:在全局作用域中声明的所有变量和函数,都是Windows对象的属性
3:其他,eval(),ECMAScript解析器。global对象中其他的属性
Math
对数学的相关操作(
www.w3school.com.cn/jsref/jsref_obj_math.asp
)