数组1:Array[ ],创建数组,数组基本操作,冒泡排序,栈内存和堆内存

创建数组:字面量创建,内置构造函数创建:

    <script>
    // 字面量创建数组Array: 简单,规避风险
        var arr = [100,200,300,400,500]
 
        console.log(arr)        //输出数组
        console.log(arr.length)     // 数组长度
        console.log(arr[0].name)        //调用数组 .方法
        console.log(arr[1].name)
        console.log(arr[0]['name'])    //调用数组  []方法


    // 构造函数创建数组 new Array()
            // 创建空数组 
            var arr2 = new Array()
            
            // 创建带有数据的数组 new Array()
            var arr3 = new Array(100,200,300,'hello')
            console.log(arr3)

            //此时100,指的是数组的长度(只有一个数据)
            var arr4 = new Array(100)
            console.log(arr4)


    </script>

数组基本操作:

.length:每个数组自带一个 length属性

下标(索引)

遍历数组

    <script>
            /* 
            数组基本操作:
                1.操作数组的length属性
                    length:这个单词是长度的意思,代表数组的长度,也就是数组中数据的个数
                    关于length属性他是一个读写属性
                    读:可以获取到length的值
                        语法:变量名.length
                    写:可以设置length的值
                        语法:变量名.length  = 值
                        当设置的比原来的长度小:就拥有删除的意思,从数组的末尾删除到符合的个数为止
                        当设置的比原来的长度大:多出来的位置用empty表示
                        当设置的和原来的长度一致:相当于没设置。
                2.操作数组的索引
                    索引也是可读可写的,可以通过索引获取到某一个数据,也可以去设置某一个索引对应的数据
                    读:获取
                        语法:变量名[索引]
                        如果该索引存在会得到该索引对应的数据
                        如果该索引不存在结果是undefined
                    写:设置数据
                        语法:变量名[索引] = 值
                        如果该索引存在就是修改该索引对应的数据
                        如果索引不存在:
                            当你写的索引值刚好和数组的长度一致:就是在数组的末尾添加一条数据
                            当你写的索引值比数组的长度大:中间位置的数据用empty表示
                3.遍历数组
                    从头到尾挨个访问一遍数组中的数据
                    遍历需要借助于循环即可,因为获取数组中的数据核心关键点需要借助于数组的索引
                    索引刚好是一组有过i率的数字,从0开始依次+1
                    刚好循环可以创造一组由规律的数组
                    循环的起始值:0开始
                    循环的结束值:<=数组的长度-1 或者 <数组的长度
                    步长:+1
        */


        // 1
        var arr1 = [100,200,300,400,500]
        console.log(arr1)
        console.log(arr1.length) // 数组长度

        // arr1.length = 3 //将arr1 的长度设置为3
        // console.log(arr1.length) 

        // arr1.length = 8 //将arr1 的长度设置为8,增加3个,empty3个
        // console.log(arr1.length) 
        
        // 2 
        console.log(arr1[0])    // 获取数据 100
        console.log(arr1[4])    // 获取数据 400
        arr1[2] = 'hello' //将索引2的数据设置为hello
        console.log(arr1[2])

        // 3 
        // for(var i = 0; i <= 4; i++){
        //     console.log(arr1[i])
        // }
             //for循环    // arr1.5
        for (var i = 0; i < arr1.length; i++) {
            // i指的就是数组的索引
            console.log(arr1[i]);//arr[4]
        }


                
    </script>

冒泡排序

   <script>
   // ================最终版
        var arr = [10, 9, 6, 7, 5, 3, 100, 2, 1]
        // var arr = [10, 9, 6, 7, 5, 3]//6
        for (var j = 0; j < arr.length-1; j++) {// j<=5    j = 0  1  2   3   4   
            for (var i = 0; i < arr.length - 1 - j; i++) {//i < 5  4  3   2   1
                if (arr[i] > arr[i + 1]) {
                    var temp = arr[i]
                    arr[i] = arr[i + 1]
                    arr[i + 1] = temp
                }
            }
        }
        console.log(arr);
    </script>

基本数据类型和引用数据类型:栈内存(复制),堆内存(给的地址)

                基本(简单)数据类型:是存储在栈内存上面的

                引用(复杂)数据类型:是存储在堆内存上面的

    <script>
        /* 
            数组会存储在内存上,内存上我们针对于不同的数据类型存储的方式是不一样。
            在内存中:我们可以再细分为:栈内存和堆内存
            基本(简单)数据类型:是存储在栈内存上面的
            引用(复杂)数据类型:是存储在堆内存上面的

            变量是存储栈中,变量的数据如果是基本类型,该数据也是再栈中,如果变量的数据是引用类型,该数据会存储到堆当中
        */

        
        var obj1 = { name: '张三', age: 18 }
        var obj2 = obj1
        obj2.name='李四'
        console.log(obj1);
        console.log(obj2);
    </script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值