JavaScript-Map和Set集合、iterator、函数的定义和参数获取

发布于:2023-01-02 ⋅ 阅读:(188) ⋅ 点赞:(0)

目录

1.Map和Set集合

2. iterator

3.函数的定义和参数获取

3.1 定义一个函数


1.Map和Set集合

Map:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        //ES6
        //统计学生的成绩和名字
        var map=new Map([['alife',90],['tom',87],['jack',99]]);
        var score=map.get('tom');//通过key获得value
        map.set('admin',86);
        console.log(score);
        map.delete('too');//删除
    </script>
</head>
<body>

</body>
</html>

Set:无序不重复的集合
Set 可以去重

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>

        var set=new Set([3,1,1,1,1]);
        set.add(2);
        set.delete(1);
        console.log(set.has(3));
    </script>
</head>
<body>

</body>
</html>

2. iterator

作用:使用iterator来遍历Map、Set

遍历数组:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        var arr=[3,4,5,];
        // in:打印下标    of:打印具体元素
        for(var x of arr){
            console.log(x);
        }
    </script>
</head>
<body>

</body>
</html>

遍历Map:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        var map=new Map([["tom",100],["jack",90],["life",89]]);
        for(let x of map){
            console.log(x);
        }
    </script>
</head>
<body>

</body>
</html>

遍历set:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        var set =new Set([5,6,7]);
        for(let x of set){
            console.log(x);
        }
    </script>
</head>
<body>

</body>
</html>

3.函数的定义和参数获取

3.1 定义一个函数

java中的格式:

public    返回值类型     方法名(){

        return   返回值;

}

定义一个绝对值函数

方式一:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        function abs(x){
            if(x>=0){
                return x;
            }else{
                return -x;
            }
        }
    </script>
</head>
<body>
</body>
</html>

一旦执行到 return 代表函数结束,返回结果!
如果没有执行 return,函数执行完也会返回结果,结果就是 undefined

方式二:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        var abs=function (x) {
            if(x>0){
                return x;
            }else{
                return -x;
            }
        }
    </script>
</head>
<body>
</body>
</html>

function(x){…}这是一个匿名函数。但是可以把结果赋值给abs,通过abs就可以调用函数!
方式一和方式二等价!

调用函数:

参数问题:javaScript可以传任意个参数,也可以不传递参数~
参数进来是否存在问题?
假设不存在参数,如何规避?

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        var abs=function (x) {
            if(typeof x!== 'number'){
                //手动抛出异常
                throw 'not a number';
            }
            if(x>=0){
                return x;
            }else{
                return -x;
            }
        }
    </script>
</head>
<body>
</body>
</html>

 arguments是一个JS免费赠送的关键字;代表传递进来的所有参数,是一个数组!

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        var abs=function (x) {
            console.log("x=>"+x);
            for(var i=0;i<arguments.length;i++){
                console.log(arguments[i]);
            }
            if(x>=0){
                return x;
            }else{
                return -x;
            }
        }
    </script>
</head>
<body>
</body>
</html>

问题:arguments 包含所有的参数,我们有时候想使用多余的参数来进行附加操作。需要排除已有参数~

以前:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        function aaa(a,b){
            console.log("a=>"+a);
            console.log("b=>"+b);
            if(arguments.length>2){
                for(var i=2;i<arguments.length;i++){
                    console.log(arguments[i])
                }
            }
        }
    </script>
</head>
<body>

</body>
</html>

现在:

ES6引入的新特性,获取除了已经定义的参数之外的所有参数~…

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        function aaa(a,b,...rest){
            console.log("a=>"+a);
            console.log("b=>"+b);
            console.log(rest);
        }
    </script>
</head>
<body>

</body>
</html>

注意:rest参数只能写在最后面,必须用 … 标识。 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到