问答详情
源自:3-6 了解成员数量(数组属性length)

为什么数组长度结果跑前面去了

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>数组长度</title>
<script language="javascript">
 var acv=new Array(65,90,88,98);
 document.write("数组的长度是:"+ document.write(acv.length));
</script>
</head>
<body>
</body>
</html>

结果为啥是 4数组的长度是:undefined 而不是 数组的长度是:  4  undefined


提问者:6666666666666到不行 2016-07-18 14:53

个回答

  • Young程哥
    2016-07-18 15:17:51
    已采纳

    第9行 document.write("数组的长度是:"+ document.write(acv.length));

    改为:

    document.write("数组的长度是:"+acv.length);

    又或者:

    document.write("数组的长度是:");

    document.write(acv.length); 你这用法有问题....没见过document.write里面嵌套document.write

  • 桃太郎
    2016-09-17 00:57:39

    我是这样理解的,逆向来看,程序会先执行document.write(mynum.length)//输出4。再执行document.write()//输出undefined。再执行document.write("数组的长度是:"+undefined);至于为什么变成document.write().就不知道了。可以用这个document.write(document.write(4+"<br/>"));更加清楚。

  • 醉忧o馨喵
    2016-07-18 15:27:27

    重复的document.write

  • 慕用7083227
    2016-07-18 15:24:36

    先执行的括号里的 document.write,所以先输出4,把后面那个document.write去掉改成document.write("数组的长度是:"+acv.length);

  • a雅
    2016-07-18 15:13:16

    先执行的括号里的 document.write所以先输出4,改成document.write("数组的长度是:"+ (acv.length)就行了;

  • Leslieding
    2016-07-18 15:11:44

    在document.write("数组的长度是:"+ document.write(acv.length));把后面那个document.write去掉改成document.write("数组的长度是:"+acv.length);试试