我在谷歌浏览器中测试了下面的代码,但警报显示为什么? (我是从http://msdn.microsoft.com/en-us/magazine/cc163419.aspx)
取的<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
</head>
<body>
<script type="text/javascript">
function filter(pred, arr) {
var len = arr.length;
var filtered = []; // shorter version of new Array();
// iterate through every element in the array...
for (var i = 0; i < len; i++) {
var val = arr[i];
// if the element satisfies the predicate let it through
if (pred(val)) {
filtered.push(val);
}
}
return filtered;
}
var someRandomNumbers = [12, 32, 1, 3, 2, 2, 234, 236, 632, 7, 8];
var numbersGreaterThan100 = filter(function (x) {
return (x > 100) ? true : false;
}, someRandomNumbers);
// displays 234, 236, 632
alert(numbersGreaterThan100);
</script>
</body>
</html>
答案 0 :(得分:5)
你在这里有一个错误,其中一些html没有完全正确。这会阻止您访问alert
。
for(var i = 0; i < len; i++) {
将其更改为:
for(var i = 0; i < len; i++) {
答案 1 :(得分:3)
这一行:
for(var i = 0; i < len; i++) {
您有一个HTML实体而不是一个小于号。修复它并且它将起作用。
侧面说明:
function(x) { return (x > 100) ? true : false; }
这是由冗余部门编写的。请改用return x>100;
。
答案 2 :(得分:1)
你的For循环中有“特殊字符”HTML。
变化:
for(var i = 0; i < len; i++) {
要:
for(var i = 0; i < len; i++) {
我做到了,它对我有用。
答案 3 :(得分:1)
我唯一看到的是:for(var i = 0; i < len; i++) {
这应该是:for(var i = 0; i < len; i++) {
注意“&lt;”而不是<
答案 4 :(得分:1)
有时复制和粘贴时会出现HTML特殊字符。在这种情况下,你有&amp; LT;而不是&lt;在你的for循环中。改变它,它的工作原理。
经验法则:在Javascript中,当一行不起作用时,语法错误为95%或时间