慕斯卡1050067
2017-03-06 21:54
document.write(myarr1.reverse().join(""));
上面这句代码可以显示出结果:“你爱我”
document.write(myarr1.join("").reverse());
这句代码显示不出东西了 为什么呢????
你这两个写法都是一个myarr1对象,调运了reverse、join两个方法。
为什么两个放在调换顺序就不行了?
这个得先搞懂这两个方法的定义和返回值。
不管上面哪个方式,第二个方法的调运,是必须通过第一个方法的返回值来调运的,这就必须保证你第一个方法的返回值类型,必须能够执行后面的方法。
reverse方法,是针对数组的一个倒序,它的返回值是Array对象,而join是Array的一个方法,所以第一种写法,myarr1.reverse().join()是没问题的。
第二个写法,join()方法是Array对象的方法,但是它返回的是一个字符串,字符串是不支持reverse方法的,所以第二种写法,myarr1.join("").reverse()会执行不成功。
这个这个嘛...
myarr1.reverse() 是给数组重新倒序排列 ,
join("")的意思是把数组中所有元素以空字符串分割开,也就是变为字符串
例如:
var myarr1 = [1,2,3,4,5];
第一句 myarr1.reverse().join("") -->执行过程先执行reverse()变为[5,4,3,2,1],然后执行join("");变为"54321"
第二句 myarr1.join("") --> 执行过程先把myarr1连接成为一个字符串,“12345”,字符串是没有reverse()方法的哦,所以你的第二句报错了
给满分哦O(∩_∩)O~
JavaScript进阶篇
468062 学习 · 21891 问题
相似问题