详解JavaScript中的every()方法
作者:木棉时间:2026-10-29 10:45:44浏览:467
本文详细介绍JavaScript数组的every()方法,该方法用于测试数组中所有元素是否都通过指定函数的测试。文章涵盖语法结构、参数说明、返回值定义,并重点提供了针对旧版浏览器的兼容性Polyfill代码实现及完整示例,帮助开发者理解其工作原理与应用场景。
every()方法概述与语法
JavaScript数组提供了一个every()方法,用于检测数组中的所有元素是否都通过了由提供的函数实现的测试。
array.every(callback[, thisObject]);
该方法的语法结构如下所示,具体参数说明如下:
- callback:用于测试数组中每个元素的回调函数。
- thisObject:可选参数,指定执行回调函数时的this值。
返回值:如果数组中的所有元素都满足提供的测试函数,则返回true;否则返回false。
关于兼容性:该方法属于ECMA-262标准扩展,因此在某些非标准实现或旧版浏览器中可能不可用。为确保兼容性,建议在代码顶部添加以下Polyfill脚本以支持该功能:
这种方法是一个JavaScript扩展到ECMA-262标准;因此它可能不存在在标准的其他实现。为了使它工作,你需要添加下面的脚本的代码在顶部:
兼容性Polyfill实现
if (!Array.prototype.every)
{
Array.prototype.every = function(fun /*, thisp*/)
{
var len = this.length;
if (typeof fun != "function")
throw new TypeError();
var thisp = arguments[1];
for (var i = 0; i < len; i++)
{
if (i in this &&
!fun.call(thisp, this[i], i, this))
return false;
}
return true;
};
}
运行上述代码将产生如下输出结果:
代码示例与运行结果
<html>
<head>
<title>JavaScript Array every Method</title>
</head>
<body>
<script type="text/javascript">
if (!Array.prototype.every)
{
Array.prototype.every = function(fun /*, thisp*/)
{
var len = this.length;
if (typeof fun != "function")
throw new TypeError();
var thisp = arguments[1];
for (var i = 0; i < len; i++)
{
if (i in this &&
!fun.call(thisp, this[i], i, this))
return false;
}
return true;
};
}
function isBigEnough(element, index, array) {
return (element >= 10);
}
var passed = [12, 5, 8, 130, 44].every(isBigEnough);
document.write("First Test Value : " + passed );
passed = [12, 54, 18, 130, 44].every(isBigEnough);
document.write("Second Test Value : " + passed );
</script>
</body>
</html>
最终输出的值为:First Test Value : false,Second Test Value : true。
First Test Value : falseSecond Test Value : true
作者最新文章
JavaScript怎么准确判断数据类型:typeof、instanceof与Object.prototype.toString
2026-11-05 17:09:21
JS中将数组和对象混合组装为JSON字符串
2026-11-05 16:41:42
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
2026-11-05 09:45:01
