美文网首页工作生活
基本类型值和引用类型值以及数组Array数组

基本类型值和引用类型值以及数组Array数组

作者: 别闹23 | 来源:发表于2019-07-03 00:06 被阅读0次

    JavaScript变量可以用来保存两种类型的值:基本类型值和引用类型值
    基本类型值源于以下5种基本类型:
    Undefined、Null、Boolean、Number和String。
    引用类型包括:

    *Object类型 *Array类型 *Date类型 *RegExp类型 *Function类型

    *基本包装类型:Boolean类型、Number类型和String类型

    *单体内置对象:Global对象、Math对象。
    *基本类型值和引用类型值有以下特点:

    • 基本类型值在内存中占用固定大小的空间,因此被保存在栈内存中;从一个变量向另一个变量

    *复制基本类型的值,会创建这个值的副本。

    • 引用类型的值是对象,保存在堆内存中。包含引用类型值的变量实际上包含的并不是对象本身,

    *而是一个指向该对象的指针。从一个变量向另一个变量复制引用类型的值,复制的其实是指针,因此两个变量最终都指向同一个对象。

    *确定一个值是哪种基本类型可以用typeof操作符,而确定一个值是哪种引用类型可以用instanceof操作符。

    例子:

    typeof:
           var a = 'awe'
           console.log(typeof(a));     //string
    
    instanceof:
        var a = 'awe'
       console.log( a instanceof Object);   //flase
       console.log( a instanceof Array);    //flase 
    

    Array数组

    数组也是对象的一种,ES数组的每一项可以保存任何类型的数据。

    数组的创建方式(俩种):
    使用new关键字+Array构造函数创建数组(new操作符可以省略)。
    例子:

    var colors = new Array(12345);  //(5) [1,2,3,4,5]默认数值类型
     var colors =  Array(12345);  //(5) [1,2,3,4,5] 省略new也可以实现一样的效果
    

    如果预先知道数组的项目数量,也可以给构造函数传递该数量,而该数量会自动成为length属性的值。

    例子:
    var colors = new Array(20);  //(20)[empty*20]
    console.log(colors.length);//20 表示它的长度是20
    

    也可以向Array构造函数传递数组中应该包含的项。

    例:
        var colors = new Array("red","blue","green");
        console.log(colors.length);//3    表示它的长度是3
    
    
    对比分析
    var colors = new Array(20);  
    console.log(colors.length);// 20 表示它的长度是20
    var colors = new Array("20");
    console.log(colors.length);//1 表示它的长度是1
    

    2、 数组字面量表示法创建数组
    数组字面量由一对包含数组项的方括号表示("[]"),多个数组项之间以逗号隔开。

    例:
        var colors = ["red","blue","green"]; //定义了一个长度为3的字符串数组
        console.log(colors.length);     //3 表示colors的长度是3
        var colors = [];         //创建一个空数组
        console.log(colors.length);     //0表示colors的长度是0
    

    在读取和设置数组的值时,要使用方括号并提供相应的基于0的数字索引(位置)。

     例:
        var colors = ["red","blue","green"]; //定义了一个长度为3的字符串数组 
        console.log(colors[0]);    //表示显示的是 "red"
        colors[2] = "black";    
                console.log(colors);//(4)['red','blue','black','green']  表示在下标为2的地方添加了'black'
    

    2、数组的length属性
    数组的length属性的特点:不是只读的。也就是说通过设置这个属性,可以从数组的末尾移除或向数组中添加新项。

    例:
        var colors = ["red","blue","green"]; //定义了一个长度为3的字符串数组
        colors.length = 2;        //设置数组长度为2
                console.log(colors);//(2) ['red','blue']表示移除了第三个字符
        console.log(colors[2]);   //undefined 因为第二个被移除了所以没有找到显示underfined
    
        var colors = ["red","blue","green"]; //定义了一个长度为3的字符串数组
        colors.length = 4;        //设置数组长度为4
                console.log(colors);//(4)["red","blue","green",'empty']表示添加了一个空数组
        console.log(colors[3]);   //undefined 
    

    利用length属性也可以方便地在数组末尾添加新项。

    数组最后一项的索引始终是 length-1 ,所以下一个新项对应的位置就是 length。

     例:
        var colors = ["red","blue","green"]; //定义了一个长度为3的字符串数组
        colors[colors.length] = "black";    
                console.log(colors);//表示在下标3的位置添加了数组['black']
    
    例:
        var colors = ["red","blue","green"]; //定义了一个长度为3的字符串数组
        colors[99] = "black";
                console.log(colors);(100) ["red", "blue", "green", empty × 96, "black"]表示在(在位置99)添加一种颜色
        console.log(colors.length); //100
    

    持续更新,未完待续。。。。。。。

    相关文章

      网友评论

        本文标题:基本类型值和引用类型值以及数组Array数组

        本文链接:https://www.haomeiwen.com/subject/qncxhctx.html