为了账号安全,请及时绑定邮箱和手机立即绑定

看代码,为什么呢?

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Array对象 </title>

<script type="text/javascript">

var myarr1= new Array("86","010")

var myarr2= new Array("84697581");

var myarr3=myarr1.concat(myarr2)//先将myarr1和myarr2连接起来。

// myarr3为什么不可以写成var myarr3=myarr1+myarr2; 

document.write(myarr3.join("-"));

</script>

</head>

<body>

</body>

</html>


正在回答

5 回答

https://img1.sycdn.imooc.com//5bdc13a400015a5b12100570.jpg

var myarr1 = new Array("86","010");
var myarr2 = new Array("84697581");
var myarr3 = myarr1 + myarr2; //这样只是将数组myarr1和myarr2的内容变成字符串相加
document.write(typeof(myarr3)+"<br/>"); //使用typeof可以查到myarr3已经不是数组对象,这样自然就不能使用数组对像的方法join()
document.write(myarr3.join("-")); //这里就会报错的,myarr3.join is not a function

如果能用一个“+”解决链接数组的问题,这个程序开发者何必多此一举去创造一个concat()方法来做。。想想他们这些开发人员是最懒的人却不傻啊 :-D

0 回复 有任何疑惑可以回复我~

试了一下

var myarr3=myarr1+myarr2; 可以将将二者连接在一起。

至于为什么document.write(myarr3.join(""))输不出内容,

因为myarr1,myarr2两个数组用+相连时时,会先被转换成字符串,再连起来。连起来的新字符串被赋值给myarr3。所以myarr3会被识别为字符串变量,而非对象。

join()方法是对象的属性,而myarr3不是对象,写成myarr3.join("")自然就会出错

3 回复 有任何疑惑可以回复我~
#1

主宰灵魂

所以myarr3会被识别为字符串变量,而非对象。 这话没有瑕疵吗? javascript中所有的事物都是对象啊!7-1节讲过<blockquote>JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。</blockquote>
2018-05-29 回复 有任何疑惑可以回复我~
#2

主宰灵魂

如myarr4=myarr1+myarr2; //typeof myarr4 是string类型,string对象没有join()这个方法. typeof myarr1或myarr2或myarr3的类型是object
2018-05-29 回复 有任何疑惑可以回复我~

可以啊

0 回复 有任何疑惑可以回复我~


+是字符串的方式吧,数组应该不行,得用API连接函数

2 回复 有任何疑惑可以回复我~

可以写成var myarr3=myarr1+myarr2; 

0 回复 有任何疑惑可以回复我~
#1

web小菜 提问者

这样写的话,document.write(myarr3.join(""))输不出内容啊
2017-01-17 回复 有任何疑惑可以回复我~
#2

Touchy老曹 回复 web小菜 提问者

myarr3.join(""),目的是将myarr1与myarr2连接起来,相加后变成一个新的数组,自连接就没内容输出了
2018-07-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

看代码,为什么呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信