5.1 Object类型
实例化的方法:
①
var person=new Object();
person.name="tom";
person.age=29;
②对象字面量
var person={
name:"tom";
age:26;
5.2 Array类型
①数组可以保存任何类型的数据
②数组的大小可以动态调整
创建数组的方法
①var colors=new Array();
②var colors=new Array("red","blue","green");
读取和设置数组的方法
-下标法
var colors=new Array();
colors[0]="red";
利用length属性可以方便的在数组的末尾添加新项
var colors=new Array("red","blue","green");
colors[colors.length]="black";//在位置3添加一种颜色
colors[colors.length]="white";在位置4再添加一种颜色
5.2.2转换方法
toLocaleString() toString() valueOf()
toLocaleString()和toString()方法差不多,在数组里,当调用这两个方法时,
toString()是把数组每一项用,号拼起来,
而toLocaleString()则是调用每一项的toLocaleString()方法
join()与toString()很像,但是不一样的是可以传拼接符来转换成数组
var colors=new Array("red","blue","green");
colors.join(",");//red,blue,green
colors.join("||");//red||blue||green
5.2.3栈方法
push():添加n项,返回修改后的数组的个数
pop():从尾部取一项,返回这一项的值
5.2.4队列方法
shift():取得数组第一项,然后返回该项
unshift():把内容放在头部,然后返回数组的长度
5.2.5重排序方法
sort():按升序
resort():按降序
这两个方法都会先调用数组每一项的toString()方法,即使这个对象是数字,所以比较数字不要直接用,要传一个比较方法的函数作为sort()的参数
5.2.6操作方法
concat():机械的在原来数组的基础上增加元素
slice():有点substring的感觉,但是不一样
可以接受一个或2个参数,
1个参数:返回项的起始位置到后面全部元素
2个参数:返回项的起始位置到指定结束位置(不包结束位置)
splice()
删除:splice(0,2)删除数组的前两项
插入:splice(2,0,"red","green");//删除0项,插入后面的参数
5.2.7位置参数
indexOf()和lastIndexOf():返回要查找的项在该数组的索引
参数:要查找的项和起点索引(可选)
5.2.8迭代方法:就是对数组每一项都执行的方法
every():对数组每一项都执行的方法,如果每一项都正确,true
filter():对数组每一项都执行的方法,返回符合条件的项
forEach():对数组每一项都执行的方法
map():和forEach()类似
some():对数组每一项都执行的方法,如果有一项正确,true
5.2.9归并方法
reduce()和reduceRight();
参数:函数和归并基础的初始值(可选)
函数的参数(前一个值,当前值,项的索引,数组对象)
var values=[1,2,3,4,5];
var sum=valeus.reduce(function()prev,cur,index,array{
return prev+cur;
})
alert(sum);//15
5.3Date类型
创建 var now=new Date();
5.4RegExp类型
regularExpression:正则表达式
var expression=/pattern/flags
flags:
g:全局
i:不区分大小写
m:表示多行
基础:
var pattern1=/at/g; //匹配字符中所有at的实例
var pattern2=/[bc]at/i; //匹配第一个bat或cat的实例,不区分大小写
var pattern3=/.at/gi; //匹配第一个包含at的有三个字母的实例,不区分大小写
如果匹配的项里面包含这些字符,需要用\进行转义
([{\^$|)?*+.}
5.4.2RegExp实例方法
exec():也是用来匹配正则的,但是返回的是数组
test():返回true or false
5.4.3 RegExp构造函数属性
5.5 Function类型
function sum(num1,num2){
return num1+num2;
}
alert(sum(10,10)); //20
var anotherSum=sum;
alert(anotherSum(10,10)); //20
sum=null;
alert(anotherSum(10,10)); //20
5.5.3作为值的函数
把函数作为参数传给这个函数
①
function callSomeFunction(someFunction,someArgument){
return someFunction(someArgument);
}
function add10(num){
return num+10;
}
var result=callSomeFunction(add10,10);
alert(result);
②
function createComparisonFunction(propertyName){
return function(object1,object2){
var value1=object1[propertyName];
var value2=object2[propertyName];
if(value1<value2){
return -1;
}else if(value1>value2){
return 1;
}else{
return 0;
}
}
}
var data=[{name:"zhang",age:28},{name:"nico",age:29}];
data.sort(createComparisonFunction("name"));
alert(data[0].name);
data.sort(createComparisonFunction("age"));
alert(data[0].name);
5.5.4 函数内部属性
arguments和this
arguments.callee:获得这个函数的指针引用
this就是对象本身
5.5.5函数属性和方法
length:函数希望接收参数的数量
prototype:保存实例方法
每个函数都包含两个非继承而来的方法:
apply()和call() //其实就是引用函数本身
apply() 作用域和数组或arguments
function sum(num1,num2){
return num1+num2;
}
function callSum1(num1,num2){
return sum.apply(this,arguments);
}
call() 作用域和参数(逐个参数列出来)
例子1
function sum(num1,num2){
return num1+num2;
}
function callSum1(num1,num2){
return sum.call(this,num1,num2);
}
例子2
window.color="red";
var o={color:"blue"};
function sayColor(){
alert(this.color);
}
sayColor(); //red
sayColor.call(this); //red
sayColor.call(window); //red
sayColor.call(o); //blue
5.6基本包装类型
就是把基本类型当做对象来实例,不建议这样做,但是有些方法挺好用
5.6.2Number类型
toString(2);//转为2进制
toFixed(2);//两位小数
5.6.3 String类型
length //获取string的长度,空格也算一个,中文也算一个字符
1.字符方法
chatAt();//获取字符串
5.7单体内置对象
5.7.1 Global对象
所有在全局作用域中定义的属性和函数,都是Global对象的属性。
1.URL编码方法
encodeURL()和encodeURLcomponent()
解码
decodeURL()和decodeURLcomponent()
2.eval()方法
参数:要执行的js字符串,然后这个函数就会执行该语句
在这个函数定义的变量和函数,都可以任意使用
3.Global对象的属性(一些可以直接使用的类型)
4.window对象
5.7.2 Math对象
1.Math对象的属性,包含一些数学的特殊值,如pi
2.max()和min()
var max=Math.max(3,54,32);
alert(max);//54
3.舍入方法
向上:ceil();
向下:floor();
四舍五入:round();
4.random():返回0-1;
实例化的方法:
①
var person=new Object();
person.name="tom";
person.age=29;
②对象字面量
var person={
name:"tom";
age:26;
}
var person={
name:"tom";
age:26;
}
5.2 Array类型
①数组可以保存任何类型的数据
②数组的大小可以动态调整
创建数组的方法
①var colors=new Array();
②var colors=new Array("red","blue","green");
读取和设置数组的方法
-下标法
var colors=new Array();
colors[0]="red";
利用length属性可以方便的在数组的末尾添加新项
var colors=new Array("red","blue","green");
colors[colors.length]="black";//在位置3添加一种颜色
colors[colors.length]="white";在位置4再添加一种颜色
5.2.2转换方法
toLocaleString() toString() valueOf()
toLocaleString()和toString()方法差不多,在数组里,当调用这两个方法时,
toString()是把数组每一项用,号拼起来,
而toLocaleString()则是调用每一项的toLocaleString()方法
join()与toString()很像,但是不一样的是可以传拼接符来转换成数组
var colors=new Array("red","blue","green");
colors.join(",");//red,blue,green
colors.join("||");//red||blue||green
5.2.3栈方法
push():添加n项,返回修改后的数组的个数
pop():从尾部取一项,返回这一项的值
5.2.4队列方法
shift():取得数组第一项,然后返回该项
unshift():把内容放在头部,然后返回数组的长度
5.2.5重排序方法
sort():按升序
resort():按降序
这两个方法都会先调用数组每一项的toString()方法,即使这个对象是数字,所以比较数字不要直接用,要传一个比较方法的函数作为sort()的参数
5.2.6操作方法
concat():机械的在原来数组的基础上增加元素
slice():有点substring的感觉,但是不一样
可以接受一个或2个参数,
1个参数:返回项的起始位置到后面全部元素
2个参数:返回项的起始位置到指定结束位置(不包结束位置)
splice()
删除:splice(0,2)删除数组的前两项
插入:splice(2,0,"red","green");//删除0项,插入后面的参数
5.2.7位置参数
indexOf()和lastIndexOf():返回要查找的项在该数组的索引
参数:要查找的项和起点索引(可选)
5.2.8迭代方法:就是对数组每一项都执行的方法
every():对数组每一项都执行的方法,如果每一项都正确,true
filter():对数组每一项都执行的方法,返回符合条件的项
forEach():对数组每一项都执行的方法
map():和forEach()类似
some():对数组每一项都执行的方法,如果有一项正确,true
5.2.9归并方法
reduce()和reduceRight();
参数:函数和归并基础的初始值(可选)
函数的参数(前一个值,当前值,项的索引,数组对象)
var values=[1,2,3,4,5];
var sum=valeus.reduce(function()prev,cur,index,array{
return prev+cur;
})
alert(sum);//15
5.3Date类型
创建 var now=new Date();
5.4RegExp类型
regularExpression:正则表达式
var expression=/pattern/flags
flags:
g:全局
i:不区分大小写
m:表示多行
基础:
var pattern1=/at/g; //匹配字符中所有at的实例
var pattern2=/[bc]at/i; //匹配第一个bat或cat的实例,不区分大小写
var pattern3=/.at/gi; //匹配第一个包含at的有三个字母的实例,不区分大小写
如果匹配的项里面包含这些字符,需要用\进行转义
([{\^$|)?*+.}
5.4.2RegExp实例方法
exec():也是用来匹配正则的,但是返回的是数组
test():返回true or false
5.4.3 RegExp构造函数属性
5.5 Function类型
function sum(num1,num2){
return num1+num2;
}
alert(sum(10,10)); //20
var anotherSum=sum;
alert(anotherSum(10,10)); //20
sum=null;
alert(anotherSum(10,10)); //20
5.5.3作为值的函数
把函数作为参数传给这个函数
①
function callSomeFunction(someFunction,someArgument){
return someFunction(someArgument);
}
function add10(num){
return num+10;
}
var result=callSomeFunction(add10,10);
alert(result);
②
function createComparisonFunction(propertyName){
return function(object1,object2){
var value1=object1[propertyName];
var value2=object2[propertyName];
if(value1<value2){
return -1;
}else if(value1>value2){
return 1;
}else{
return 0;
}
}
}
var data=[{name:"zhang",age:28},{name:"nico",age:29}];
data.sort(createComparisonFunction("name"));
alert(data[0].name);
data.sort(createComparisonFunction("age"));
alert(data[0].name);
5.5.4 函数内部属性
arguments和this
arguments.callee:获得这个函数的指针引用
this就是对象本身
5.5.5函数属性和方法
length:函数希望接收参数的数量
prototype:保存实例方法
每个函数都包含两个非继承而来的方法:
apply()和call() //其实就是引用函数本身
apply() 作用域和数组或arguments
function sum(num1,num2){
return num1+num2;
}
function callSum1(num1,num2){
return sum.apply(this,arguments);
}
call() 作用域和参数(逐个参数列出来)
例子1
function sum(num1,num2){
return num1+num2;
}
function callSum1(num1,num2){
return sum.call(this,num1,num2);
}
例子2
window.color="red";
var o={color:"blue"};
function sayColor(){
alert(this.color);
}
sayColor(); //red
sayColor.call(this); //red
sayColor.call(window); //red
sayColor.call(o); //blue
5.6基本包装类型
就是把基本类型当做对象来实例,不建议这样做,但是有些方法挺好用
5.6.2Number类型
toString(2);//转为2进制
toFixed(2);//两位小数
5.6.3 String类型
length //获取string的长度,空格也算一个,中文也算一个字符
1.字符方法
chatAt();//获取字符串
5.7单体内置对象
5.7.1 Global对象
所有在全局作用域中定义的属性和函数,都是Global对象的属性。
1.URL编码方法
encodeURL()和encodeURLcomponent()
解码
decodeURL()和decodeURLcomponent()
2.eval()方法
参数:要执行的js字符串,然后这个函数就会执行该语句
在这个函数定义的变量和函数,都可以任意使用
3.Global对象的属性(一些可以直接使用的类型)
4.window对象
5.7.2 Math对象
1.Math对象的属性,包含一些数学的特殊值,如pi
2.max()和min()
var max=Math.max(3,54,32);
alert(max);//54
3.舍入方法
向上:ceil();
向下:floor();
四舍五入:round();
4.random():返回0-1;