//创建对象的两种方法(另一种:对象字面量两表示法)
var person1 = new Object();
person1.age = 29;
person1.name = "Nicholas";
var person2 = { //另一种创建对象的方法(对象字面量表示法),每个属性之间加逗号,最后一个不能加。
"name": "Nicholas", //属性名可以不使用字符串。
"age": 29
};
console.log(person2.name);
var obj = new Object();
var obj = {}; //这两种写法等价。使用对象字面量时不会调用Object的构造函数。
//调用属性的两种方法。
function display(args){
console.log(args.name);
console.log(args.age);
console.log(args["name"]); //方括号表示法,如果想用变量操作属性,可以选用。
}
display({
name: "Steve",
age: 24
});
//Array
var arrays = Array(3); //可以省略new
arrays.push(3);
console.log(arrays); //,,,3
//lenth(可以直接往脚标length上添加数据,相当于push)
var colors = ["hehe","haha","heihei"];
colors.length = 2;
console.log(colors[2]); //undefined 改变length以后移除了。
var colors = ["hehe","haha","heihei"];
colors[colors.length] = "xixi"; //相当于push
console.log(colors); //会在后台调用toString方法
//采用字面量表示法定义实例中的函数。
var obj = new Object({
toString: function(){
return "StringString";
},
toLocaleString: function(){
return "LocaleString";
}
});
//每个Object中的toString方法都是逐个调用元素的toString(),toLocaleString是逐个调用元素的toLocaleString然后拼接。
console.log(obj.toString()); //String 因为被复写的String方法
console.log(obj.toLocaleString()); //LocaleString 因为被复写的toLocaleString方法
//使用join方法:返回一个元素之间含有指定分隔符的Array
var colors = ["hehe","haha","heihei"];
console.log(colors.join("啊啊")); //设定字符串输出时的分隔符。
//数组的栈与队列方法
var colors = ["hehe","haha","heihei"];
colors.push("xixi");
console.log(colors);
colors.pop();
console.log(colors); //JS中的数组可以进行栈方法, push进栈 pop出栈。
console.log(colors.pop()); //数组pop时返回弹出的值。
colors.push("xixi");
console.log(colors);
console.log(colors.shift()); //队列方法shift(),取出头上的数据,取出了hehe
console.log(colors); //hehe不见了
colors.unshift("hehe","hehe")//队列方法unshift() 插队,从队列前端推入。
console.log(colors);
//同时用unshift和pop可以模拟反向队列,从前端入队,后端出队。
array = new Array(2,50,38,3,7);
console.log(array.reverse());
console.log(array);
console.log(array.sort());
console.log(array);
//数组的sort方法默认以字符串的方法比较,想要自定义比较方法就传入一个函数(可以采取匿名函数)
array = new Array(2,50,38,3,7);
array.sort(function(value1,value2){ //传入函数以进行比较。
return value1-value2;
});
console.log(array);
//截取(slice)
var array = new Array(2,50,38,3,7);
var array2 = array.slice(2,4); //截取数组从2到4(但不包括4)
console.log(array2);
var array = new Array(2,50,38,3,7); //splice(粘接)
console.log(array.splice(2,3)); //传入两个参数,删除:从第二项开始删除三项。返回的是被删除的项。
console.log(array);
var array = new Array(2,50,38,3,7);
console.log(array.splice(2,2,"hehe","haha")); //传入多个参数,再从第二项开始删除两项以后,插入"hehe"和"haha"。(第二个参数为0则不删除)
console.log(array);
//枚举函数。
var array = new Array(2,50,38,3,7);
var result1 = array.forEach(function(item){ //枚举函数forEach。没有返回值。
return item>5;
});
console.log(result1); //undefined
var result2 = array.every(function(item){ //枚举函数every。数组内元素全部返回true才返回true。
return item>5;
});
console.log(result2); //false
var result3 = array.map(function(item){ //枚举函数map。调用函数结果的数组。
return item>5;
});
console.log(result3);
var result4 = array.filter(function(item){ //枚举函数filter。返回结果是true函数执行内容的数组。
return item>5;
}
)
console.log(result4);
var result5 = array.some(function(item){ //枚举函数some。调用结果结果是true内容的数组。
return item>5;q
});
console.log(result5);
//归并方法
var values = [10,20,30,40,50];
var sum = values.reduce(function(num1,num2){
return num1+num2;
});
console.log(sum); //150,从左到右将数组中的元素按照指定函数相加。遍历从左端开始
var sum = values.reduceRight(function(num1,num2){
return num1+num2;
});
console.log(sum); //150,从右到左将数组中的元素按照指定函数相加。遍历从右端开始