js数组中的reverse()方法

reverse方法是将数组中的元素的顺序进行反转,在原数组上操作,然后返回原数组。由于本人是学习js的新人,对reverse函数进行了几个小实验,以下实验均在Chrome浏览器上运行

实验一:reverse方法能否用于undefined与null上

实验代码如下:

 1 <script type="text/javascript">
 2          var foo=function  () {
 3             var c=null;
 4             var d=undefined;
 5             //reverse方法测试代码
 6             console.log(c.reverse());//报错
 7             console.log(d.reverse());//报错
 8          }
 9          foo();
10 </script>

 

如果将代码改成如下所示:

 1 <script type="text/javascript">
 2          var foo=function  () {
 3             var c=[null];
 4             var d=[undefined];
 5             //reverse方法测试代码
 6             console.log(c.reverse());//[null]
 7             console.log(d.reverse());[undefined]
 8          }
 9          foo();
10 </script>

结论:reverse方法不能再null与undefined上运行

 

 

实验二:空数组上运行reverse方法得出什么样的结果

实验代码如下:

1 var e=[];
2 console.log(e.reverse());//[]

结论:输出空数组

 

 

实验三:reverse方法返回数组本身相关实验

实验代码如下:

 1 <script type="text/javascript">
 2          var foo=function  () {
 3             var b=[false,undefined,null];
 4             //reverse方法测试代码
 5             var b_reverse_result=b.reverse();
 6             console.log(b);//[null,undefined,false]
 7             console.log(b_reverse_result);//[null,undefined,false]
 8          }
 9          foo();
10 </script>

 

结果分析:由于b数组执行reverse方法之后返回的是b数组元素反转之后的顺序,而b_reverse_result与b指向是同一个数组,所以二者输出结果都是b数组反转之后的结果。

 

实验代码如下:

 1 <script type="text/javascript">
 2          var foo=function  () {
 3             var b=[false,undefined,null];
 4             //reverse方法测试代码
 5             console.log(b.reverse());//[null, undefined, false]
 6             var b_reverse_result=b.reverse();
 7             console.log(b_reverse_result);//[false, undefined, null]
 8             console.log(b);//[false,undefined,null]
 9          }
10          foo();
11 </script>

 结论:reverse方法在数组自身上操作,而且b与b_reverse_result确实代表了同一个数组。

posted on 2016-03-10 11:09  莫尤公子  阅读(30857)  评论(0编辑  收藏  举报

导航