ES5即ECMAScript 5.1,在JavaScript语言基础之上添加了很多新的特性,对现有的对象和语句进行相应的增强和规范,主要包括一些新增函数、对象类型增强,以及严格模式编程规范。
今天我们先来介绍以下几个新增的函数:
Array.isArray(obj);
Array.prototype.forEach();
Array.prototype.indexOf();
Array.prototype.lastIndexOf();
Array.prototype.filter();
Array.prototype.map();
Array.prototype.some();
Array.prototype.every();
Array.prototype.reduce();
JSON.parse();
JSON.stringify();
String.prototype.trim();
Date.now();
Date.prototype.toISOString();
下面我们就一一介绍他们的用法:
Array.isArray(obj);
显而易见,该函数用来判断一个对象是否为数组类型,如果是则返回true,否则返回false,我们可以用一个简单的数组来测试这个函数:var arr = [1, 2, 3, 4, 5];
var func = function() {};
console.log('is arr the Array type? ', Array.isArray(arr));
console.log('is func the Array type? ', Array.isArray(func));
执行上面的代码,控制台打印如下图所示:
我们可以很容易实现一个我们自己版本的isArray函数:
Array.isArray = Array.isArray || function(obj) {
return Object.prototype.toString.call(obj) === '[object Array]';
};
Array.prototype.forEach();
forEach函数是定义在Array原型上的一个函数,用于实现最基本的数组遍历操作,所以我们可以直接在数组上面调用实现遍历:console.group('for each is running');
[1, 2, 3, 4, 5].forEach(function(item, index, array) {
console.log('the current index is: ' + index + ', value is: ' + item);
});
console.groupEnd();
在回调函数中,前两个参数分别表示当前的元素和索引,最后一个参数是数组本身,打印时我们使用console的group和groupEnd对控制台结果分组,代码执行完毕,结果打印如下: