<!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
第9行 document.write("数组的长度是:"+ document.write(acv.length));
改为:
document.write("数组的长度是:"+acv.length);
又或者:
document.write("数组的长度是:");
document.write(acv.length); 你这用法有问题....没见过document.write里面嵌套document.write
我是这样理解的,逆向来看,程序会先执行document.write(mynum.length)//输出4。再执行document.write()//输出undefined。再执行document.write("数组的长度是:"+undefined);至于为什么变成document.write().就不知道了。可以用这个document.write(document.write(4+"<br/>"));更加清楚。
重复的document.write
先执行的括号里的 document.write,所以先输出4,把后面那个document.write去掉改成document.write("数组的长度是:"+acv.length);
先执行的括号里的 document.write所以先输出4,改成document.write("数组的长度是:"+ (acv.length)就行了;
在document.write("数组的长度是:"+ document.write(acv.length));把后面那个document.write去掉改成document.write("数组的长度是:"+acv.length);试试