Object
表示方法
-
new 操作符后跟 Object 构造函数
var person = new Object();
-
使用对象字面量表示法
var person = { name : "Nicholas", age : 29 };
访问方式
alert(person["name"]); //"Nicholas"
alert(person.name); //"Nicholas"
Array
表示形式
var colors = new Array(20);
var colors = new Array("red", "blue", "green");
var colors = ["red", "blue", "green"];
检查数组
if (value instanceof Array){ //对数组执行某些操作 }
Array.isArray()方法
Object.prototype.tostring.call(this)
转换方法
alert(colors.toString()); // red,blue,green
alert(colors.valueOf()); // red,blue,green
alert(colors); // red,blue,green
join()
var colors = ["red", "green", "blue"];
alert(colors.join(",")); //red,green,blue
alert(colors.join("||")); //red||green||blue
pop() push() shift() unshift()
var colors = new Array(); //创建一个数组
var count = colors.unshift("red", "green");
count = colors.unshift("black");
//数组中各项的顺序为"black"、"red"、"green"。
重排序方法
reverse()
会反转数组项的顺序
var values = [1, 2, 3, 4, 5];
values.reverse();
alert(values); //5,4,3,2,1
sort()
sort()方法会调用每个数组项的 toString()转型方法,然后比较得到的字符串,以 确定如何排序。
var values = [0, 1, 5, 10, 15];
values.sort();
alert(values); //0,1,10,15,5
改造
var values = [0, 1, 5, 10, 15];
values.sort((a,b)=>{
return a-b
});
alert(values); //0,1,5,10,15
操作方法
concat()
这个方法会先创建当前数组一个副本,然后将接收到的参数 添加到这个副本的末尾,最后返回新构建的数组。
var colors = ["red", "green", "blue"];
var colors2 = colors.concat("yellow", ["black", "brown"]);
alert(colors); //red,green,blue
alert(colors2); //red,green,blue,yellow,black,brown
splice()
splice()方法始终都会返回一个数组,该数组中包含从原始数组中删除的项
- 第一参数是开始位置
- 第二个参数是删除项
- 第三个参数是从开始位置往后插入项
var colors = ["red", "green", "blue"];
colors.splice(1, 1, "red", "purple");
alert(colors); // red,red,purple,blue
位置方法
indexOf() lastIndexOf()
indexOf()
查找到第一个符合的返回index,未找到为-1
lastIndexOf()
查找到最后一个符合的返回index,未找到为-1
第一个参数为查找对象 第二个参数为开始位置
迭代方法
- every():对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回 true。
- filter():对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。
- forEach():对数组中的每一项运行给定函数。这个方法没有返回值
- map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
- some():对数组中的每一项运行给定函数,如果该函数对任一项返回 true,则返回 true
map()
var numbers = [1,2,3,4,5,4,3,2,1];
var mapResult = numbers.map(function(item, index, array){
return item * 2;
});
alert(mapResult); //[2,4,6,8,10,8,6,4,2]
归并方法
reduce() redunceRight()
reduce()方法从数组的第一项开始,逐个遍历 到最后。而 reduceRight()则从数组的最后一项开始,向前遍历到第一项。
var values = [1,2,3,4,5];
var sum = values.reduce(function(prev, cur, index, array){
return prev + cur;
});
alert(sum); //15
Date类型
创建
var now = new Date();
// 本地时间 2000 年 1 月 1 日午夜零时
var y2k = new Date(2000, 0);
Date.parse()
接收一个表示日期的字符串参数,然后尝试根据这个字符串返回相应日 期的毫秒数
Date 类型的 toLocaleString()方法会按照与浏览器 设置的地区相适应的格式返回日期和时间
!
Function
无重载
一个函数可以作为另一个函数的参数传递
函数内部属性arguments
和 this
arguments 的主要用途是保存函数参数
这个对象还有一个名叫 callee 的属性,该属性是一个指针,指向拥有这个 arguments 对象的函数。
函数内部属性
这个对象还有一个名叫 callee 的属性,该属性是一个指针,指向拥有这个 arguments 对象的函数。
window.color = "red";
var o = { color: "blue" };
function sayColor(){
alert(this.color);
}
sayColor(); //"red"
o.sayColor = sayColor;
o.sayColor(); //"blue"
函数属性和方法
每个函数都包含两个 属性:length 和 prototype
length 属性表示函数希望接收的命名参数的个数
prototype 属性是不可枚举的,因此使用 for-in 无法发现
每个函数都包含两个非继承而来的方法:apply()和 call()。
apply()方法接收两个参数:一个 是在其中运行函数的作用域,另一个是参数数组
call()第一个参数是 this 值,其余参数都直接传递给函数
真正强大的地方是能够扩充函数 赖以运行的作用域
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