JavaScript 让你意外的瞬间(Array类型)

除了Object类型,Array类型应该是JS中最常用的引用类型了。
并且JS的数组和其他的语言,像JAVA,C有着很大的区别,具体体现在:
JS数组中的每一项可以保存任何数据类型的数据。
JS的数组大小是可以动态调整的。

这两个特点在JAVA或者C中的定长数组是不可行的。所以在我看来,JS的数组,更像其他语言封装好的一个比较强大的类。。。。
在这里插入图片描述

我们来看一下JS中数组是怎么创建的。

    <script>
        var arr1=new Array();
        var arr2=new Array(5);
        var arr3=new Array(1,2,3,4);
        var arr4=new Array("123");
        var arr5=[];
        var arr6=[1,2,3,4];
    </script>

这里我把打印结果拿出来,就不解释它们的区别了,因为有点墨迹了。。
在这里插入图片描述
像其他语言一样,JS的数组也有一个属性——length。
不过不一样的是,JS中的length不是只读的。。

例如我们来看一下:

    <script>
        var arr=[1,2,3];
        console.log(arr);
        arr.length=2;
        console.log(arr);
        arr.length=5;
        console.log(arr);
    </script>

正常我的arr的length应该为3;
当我设置成2后,第三个元素就会没了。
当我设置成5后,后三个元素就是空(打印出来会是undefined)。
在这里插入图片描述
是不是很有意思。。。。
所以啊,好玩的来了,我利用这个特点就可以给数组尾部添加新元素,看我操作。

    <script>
        var num=[1,2,3];
        num[num.length]=4;
        console.log(num);
    </script>

开始length应该为3,正好对应的是下标为3的空元素,给它设置成4,哎,这不就添加上一个元素了吗。。
所以说JS的数组是真滴灵活。。。看下个例子:

    <script>
        var colors=["red","blue"];
        colors[99]="purple";
        console.log(colors.length);
    </script>

这个打印出来的结果就是100.
2-98号元素全是undefined。。。。

OK,这就是length的特点,还是很有趣的。
在这里插入图片描述
我们来看一下检测数组的方法。
我们能用typeof来检测吗,之前其实我也说过。还是来试一下:

    <script>
        var hero=["雷神","美国队长"];
        console.log(typeof hero);
    </script>

object
打印结果是Object。。。。。。。
正是因为这个原因,所以我们可以用instanceof来确定一个对象是不是数组。
但这种方法在网页中包含多个框架会出现问题,所以就有了另一种方法:
isArray()方法。。。。。

我把这几个方法都写一下:

    <script>
        var hero=["雷神","美国队长"];
        console.log(typeof hero);
        console.log(hero instanceof Array);
        console.log(Array.isArray(hero));
    </script>

记住,第一个typeof是不行的啊。
在这里插入图片描述
然后下一个点说一下转换成字符串吧,我把方法列举出来。。。

    <script>
        var hero=["雷神","美国队长"];
        alert(hero.toString());
        alert(hero.valueOf());
        alert(hero);
        alert(hero.join("||"));
    </script>

这里面其实我也有个问题,可以看到我用了alert这个消息框来弹出而不是consol.log这种控制台输出,因为在控制台的话会有一个改变字符串的方法(我不懂为什么)所以就用alert来进行输出了。。。

第四个join方法是用来改变元素之间的符号,默认是逗号,如果不喜欢默认的可以通过join方法来改变。。

关于数组这个引用类型还有很多很多方法,我也不能一一去说了,最好的方法就是查阅文档,推荐去W3C官网上去看那个API手册。。。。

OK,关于数组的话,就说这些。欢迎补充。。。。。。。。。。。。。

©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页