引用类型的值(对象)是引用类型的一个实例。引用类型有时候也称为对象定义,因为他们描述的是一类对象所具有的属性和方法。
对象是某个特定引用类型的实例。新对象是使用new操作符后跟一个构造函数来创建的。构造函数本身就是一个函数,只不过该函数是出于创建新对象的目的而定义的。
一:object类型
大多引用类型值都是object类型的实例。
创建object实例两种方法:
var person1 = new Object(); //new操作符后跟构造函数
person1.name = "Grace";
person1.age = 20;
var person2 = { //对象字面量。实际上不会调用Object构造函数
name: "Grace",
age: 20
};
alert(person1.name); //访问对象属性时使用的点表示法
alert(person1["age"]); //访问对象属性使用方括号,属性以字符串的形式放在方括号中
二:Array类型
/*使用Array构造函数*/
var color1 = new Array();
var color2 = new Array(20);
var color3 = new Array(1,2,3);
/*数组字面量表示法*/
var value = ["red",3,true]; //每一项可以保存任何类型的数据
value[3] = "green"; //数组的大小可以动态调整
value.length = 5;
alert(value[4]); //undefined
/*检测数组*/
if(value instanceof Array) {}
if(Array.isArray(value)) {}
/*转换方法*/
alert(color3.toString()); //以,分割的字符串
alert(color3.valueOf()); //返回的还是这个数组,但是alert接受字符串参数,所以后台会调用toString()
alert(color3); //同上
/*栈方法和队列*/
value.push("yellow"); //栈顶推入
value.pop(); //栈顶弹出并返回这个项
value.shift(); //取出第一项
value.unshift("black") //加入第一项
/*重排序方法*/
var num = [1,0,10,5];
alert(num.sort()); //0,1,10,5 --> 比较的是字符串
alert(num.reverse()); //5,10,0,1 --> 反转数组项的顺序
/*操作方法*/
alert(num.concat(8,6)) //1,0,10,5,8,6 --> 基于当前数组所有项创建一个新数组
alert(num.slice(2,3)); //10,5 --> 起始位置和结束结束位置
alert(num.indexOf(10)); //2 --> 使用全等操作符
alert(num.indexOf(2)); //无此数返回-1
alert(num.splice(0,1)); //splice(删除的第一项位置,要删除的项数)
alert(num.splice(1,0,20)); //splice(插入的第一项位置,要删除的项数--0,要插入的项)
alert(num.splice(0,1,30,40)); //splice(替换的第一项位置,要删除的项数,插入的任意项)
var item = [1,2,3,4,5,6,7];
var every = item.every(function(item,index,array){xxx}) //每一项返回true则返回true
var filter = item.filter(function(item,index,array){xxx}) //返回true的项组成数组
var map = item.map(function(item,index,array){xxx}) //返回函数调用后的结果组成数组
var some = item.some(function(item,index,array){xxx}) //任一一项返回true就返回true
var forEach = item.forEach(function(item,index,array){xxx}) //没有返回值
三:Data类型
使用UTC,1970年1月1日零时
var someDate = new Date("May 20, 2016"); //调用Date.parse()
colsole.log(someDate.getFullTear());
colsole.log(someDate.getMouth()); //0-11
colsole.log(someDate.getDate()); //天数
colsole.log(someDate.getDay()); //星期几
colsole.log(someDate.getHours());
colsole.log(someDate.getMinutes());
colsole.log(someDate.getSecond());