我这个程序输出的为什么是undefined,不应该是string类型吗

我这个程序输出的为什么是undefined,不应该是string类型吗

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>数组遍历</title>
</head> 
<body>
<script>
   //补充代码
   var language=["HTML",'CSS','JavaScript','HTML5','CSS3'];
   for(var i=0;i<language.length;i++){
       var a=document.write(language[i]);
       document.write(typeof a);
   }
  </script>     
</body>
</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
正在想名字呢 2019-06-17 17:03:27

for循环输出的是对象,所以typeof检测是undefined,把循环输出的对象放在数组中,在检测就对了

http://img1.sycdn.imooc.com//climg/5d0757150001c3c913720304.jpg

  • 提问者 adve #1
    是因为我使用了document.write()这个方法吗,也就是说document.write()输出的类型为undefined?
    2019-06-18 11:37:10
  • 正在想名字呢 回复 提问者 adve #2
    跟输出的document.write()这个方法没有关系,原因是for循环出来的是对象的集合,所以才是undefined,得把for循环到的对象分别放进数组里面,再检测数组里面的每一项(也就是字符串"HTML",'CSS','JavaScript','HTML5','CSS3')才可以
    2019-06-18 15:20:26
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师