js复合类型

复合类型

复合类型是指由多个基本数据类型或者复合类型构成的数据体。
js中的复合类型有对象Object、数组Array和Function函数三大类

对象

对象是一系列命名变量和函数的集合,对象中的命名变量称为属性, 对象中的函数称为方法。对象中访问属性和函数的方法都是通过. 点 运算符实现的。例如获取浏览器的版本navigator.appVersion

    <br />
    js是基于对象的脚本语言,所以提供了大量的内置对象供开发者使用
    - Array数组类
    - Date日期类
    - Math数学类
    - Object对象类
    - String字符串类
    ... ...
    还有一组的DOM对象,例如document.write();一组BOM对象,例如window.alert()
</p>
<script>
    //5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
    //Chrome/89.0.4389.72 Safari/537.36 Edg/89.0.774.45
    alert(navigator.appVersion)
</script>
<hr />
<h3>数组</h3>
<p>
    - 什么是数组<br />
    - 数组就是一组数据的集合,其表现形式就是内存中的一段连续的内存地址<br />
    - 数组名称其实就是连续内存地址的首地址<br />
    - 数组特点<br />
    - 数组定义时无需指定数据类型,数组定义时可以无需指定数组长度<br />
    - 数组可以存储任何数据类型的数据(比如一个元素保存整型,一个元素保存
    字符串型,这个在JS中是可以的)
</p>
<script>
    // var arr=[];//定义数组
    var arr = new Array();
    arr[0] = 123;
    arr[1] = "abcd";
    arr[5] = true;
    alert(arr.length); //6
    for (var k = 0; k < arr.length; k++) {
        console.log(arr[k]);  //没有赋值的元素为undefined
    }
    console.log(arr[100]);  //不会越界异常
</script>
<hr />
<h3>数组的基本操作</h3>
<p>
    js为数组提供了一个length属性可以获取数组的长度,实际上js的数组长度可以任意变化
    - 数组长度可变,索引值从0开始
    - 同一个数组中的元素类型可以互不相同
    - 访问数组元素时不会产生越界问题,访问并未赋值的数组元素时返回undefined
</p>
<h3>多维数组</h3>
<p>

</p>
<script>
    //定义数组方法1:  多维数组其实就是数组的元素还是数组
    var a = new Array();
    for (var i = 0; i < 3; i++) {        //一维长度为3
        a[i] = new Array();
        for (var j = 0; j < 5; j++) {    //二维长度为5
            a[i][j] = i + j;  //访问数组中的指定元素
        }
    }
    //定义数组方法2:
    var a = [[1, 2, 3, 5, 6, 7], [2, 3, 4], [3, 9, 0, 10, 12]];
    document.write("<table border=1>");
    for (var i = 0; i < a.length; i++) {
        document.write("<tr>");
        for (var k = 0; k < a[i].length; k++) {
            document.write("<td>" + a[i][k] + "</td>");
        }
        document.write("</tr>");
    }
    document.write("</table>");
</script>
<h3>数组常见方法</h3>
<strong>
    在java中使用List&lt;String&gt; list=Arrays.asList(arr);获取一个不可变的集合,
    存储的元素个数不能变化。试图修改结构则一定UnsupportedOperationException
    <hr />
    String ss="adslfkjasldkfjsalkdfjdsafkajsdflksadjflsakd";<br />
    String[] arr=ss.split("a");<br />
    for(String temp:arr)<br />
    System.out.println(temp+":"+temp.length());<br />
    String ss1=String.join("567", arr);<br />
    System.out.println(ss1);<br />
</strong>
<p>
    concat(arrayX,arrayX,......,arrayX)方法用于连接两个或多个数组,参数
    可以是具体的值,也可以是数组对象。可以是任意多个<br />
    join(separator)方法用于把数组中的所有元素放入一个字符串,separator可选。
    指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符<br />
    <strong>可以用于模拟实现栈或者队列</strong><br />
    pop() 方法用于删除并返回数组的最后一个元素<br />
    push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度<br />
    shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值<br />
    unshift(newelement1,newelement2,....,newelementX)方法可向数组的开头添加一
    个或更多元素,并返回新的长度<br />

    reverse() 方法用于颠倒数组中元素的顺序<br />
    slice(start,end)方法可从已有的数组中返回选定的元素<br />
    sort(sortby)方法用于对数组的元素进行排序。其中sortby为一个函数
    - function(a,b){ return a-b}
    - a-b输出从小到大排序,b-a输出从大到小排序<br />
    splice(index,howmany,item1,.....,itemX)从数组中添加/删除项目,然后返回被删除的项目
    - index必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置
    - howmany必需。要删除的项目数量。如果设置为 0,则不会删除项目

</p>
<script>
    var arr1 = [1, 2, 3];
    var arr2 = [0, 7, 19, 20];
    var arr3 = arr1.concat(arr2);  //在arr1的末尾拼接arr2的内容,arr1的内容不变
    for (var k = 0; k < arr3.length; k++) {
        document.write(arr3[k] + "&nbsp;&nbsp;&nbsp;");
    }
    alert(arr1.length);

    arr1 = [1, 7, 2, 'b', 9, 3, 10, 3, 8, 'a'];
    arr2 = arr1.sort(function (a, b) {
        return a - b;   //如果元素不能参与计算,即计算结果为NaN,则不参与排序
    });
    for (var k in arr2)
        console.log(arr2[k]);

    document.write('11a' - 10);
    /*
splice(index,howmany,item1,.....,itemX)从数组中添加/删除项目,然后返回被删除的项目

  • index必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置

  • howmany必需。要删除的项目数量。如果设置为 0,则不会删除项目
    */
    document.write("


    ");
    arr1 = [9, 8, 3];
    for (var k = 0; k < arr1.length; k++) {
    document.write(arr1[0 - k - 1]); //直接遍历不能使用负数下标
    }
    document.write("
    ");
    //从末尾,则-1下标位置开始执行操作的位置,向后计算,2表示删除的元素个数
    //返回值为数组,其中包括删除掉的元素。被操作数组中的元素被删除
    arr2 = arr1.splice(-1, 2);
    document.writeln(arr2.length);
    for (var k = 0; k < arr2.length; k++)
    document.writeln(arr2[k]);
    document.write("
    ");
    document.writeln(arr1.length);
    document.write("
    ");
    //新增数据
    arr1 = [9, 8, 3];
    arr1.splice(1, 0, 4, 5, 6, 7); //9 4 5 6 7 8 3
    for (var k = 0; k < arr1.length; k++)
    document.writeln(arr1[k]);
    document.write("
    ");
    //既执行删除又新增数据
    arr1 = [9, 8, 3, 10];
    arr2 = arr1.splice(-3, 2, 4, 5, 6, 7); //9 4 5 6 7 10
    for (var k = 0; k < arr1.length; k++)
    document.writeln(arr1[k]);
    document.write("
    ");
    for (var k = 0; k < arr2.length; k++)
    document.writeln(arr2[k]); //8 3


    函数

    函数可以包含一段可执行的代码,可以接受调用者传入参数,可以返回处理结果。 函数参数列表可以不需要数据类型声明,函数的返回值也不需要数据类型声明。
    语法格式: function functionName(param1, params2,....){}
    调用语法: functionName(values,value2,...)

    点我

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值