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


    目录

    1.Map和Set集合

    2. iterator

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

    3.1 定义一个函数


    1.Map和Set集合

    Map:

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. <script>
    7. //ES6
    8. //统计学生的成绩和名字
    9. var map=new Map([['alife',90],['tom',87],['jack',99]]);
    10. var score=map.get('tom');//通过key获得value
    11. map.set('admin',86);
    12. console.log(score);
    13. map.delete('too');//删除
    14. script>
    15. head>
    16. <body>
    17. body>
    18. html>

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

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. <script>
    7. var set=new Set([3,1,1,1,1]);
    8. set.add(2);
    9. set.delete(1);
    10. console.log(set.has(3));
    11. script>
    12. head>
    13. <body>
    14. body>
    15. html>

    2. iterator

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

    遍历数组:

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. <script>
    7. var arr=[3,4,5,];
    8. // in:打印下标 of:打印具体元素
    9. for(var x of arr){
    10. console.log(x);
    11. }
    12. script>
    13. head>
    14. <body>
    15. body>
    16. html>

    遍历Map:

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. <script>
    7. var map=new Map([["tom",100],["jack",90],["life",89]]);
    8. for(let x of map){
    9. console.log(x);
    10. }
    11. script>
    12. head>
    13. <body>
    14. body>
    15. html>

    遍历set

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. <script>
    7. var set =new Set([5,6,7]);
    8. for(let x of set){
    9. console.log(x);
    10. }
    11. script>
    12. head>
    13. <body>
    14. body>
    15. html>

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

    3.1 定义一个函数

    java中的格式:

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

            return   返回值;

    }

    定义一个绝对值函数

    方式一:

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. <script>
    7. function abs(x){
    8. if(x>=0){
    9. return x;
    10. }else{
    11. return -x;
    12. }
    13. }
    14. script>
    15. head>
    16. <body>
    17. body>
    18. html>

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

    方式二:

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. <script>
    7. var abs=function (x) {
    8. if(x>0){
    9. return x;
    10. }else{
    11. return -x;
    12. }
    13. }
    14. script>
    15. head>
    16. <body>
    17. body>
    18. html>

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

    调用函数:

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

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. <script>
    7. var abs=function (x) {
    8. if(typeof x!== 'number'){
    9. //手动抛出异常
    10. throw 'not a number';
    11. }
    12. if(x>=0){
    13. return x;
    14. }else{
    15. return -x;
    16. }
    17. }
    18. script>
    19. head>
    20. <body>
    21. body>
    22. html>

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

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. <script>
    7. var abs=function (x) {
    8. console.log("x=>"+x);
    9. for(var i=0;i<arguments.length;i++){
    10. console.log(arguments[i]);
    11. }
    12. if(x>=0){
    13. return x;
    14. }else{
    15. return -x;
    16. }
    17. }
    18. script>
    19. head>
    20. <body>
    21. body>
    22. html>

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

    以前:

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. <script>
    7. function aaa(a,b){
    8. console.log("a=>"+a);
    9. console.log("b=>"+b);
    10. if(arguments.length>2){
    11. for(var i=2;i<arguments.length;i++){
    12. console.log(arguments[i])
    13. }
    14. }
    15. }
    16. script>
    17. head>
    18. <body>
    19. body>
    20. html>

    现在:

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

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. <script>
    7. function aaa(a,b,...rest){
    8. console.log("a=>"+a);
    9. console.log("b=>"+b);
    10. console.log(rest);
    11. }
    12. script>
    13. head>
    14. <body>
    15. body>
    16. html>

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

  • 相关阅读:
    【Overload游戏引擎细节分析】视图投影矩阵计算与摄像机
    CS鱼饵制作
    排序3——C语言
    两种高效的事件处理模式:Reactor模式与Proactor模式
    Linux shell编程学习笔记30:打造彩色的选项菜单
    鸿蒙:使用Stack、ContentTable、Flex等组件和布局实现一个显示界面
    持续集成与持续交付CI/CD
    iptables的50条常用命令
    圣诞旺季来临,流量突破30亿!赛盈分销双重福利加码,助力卖家抢夺旺季流量,爆单不费力!
    旋转框/微调按钮的基类--QAbstractSpinBox 类
  • 原文地址:https://blog.csdn.net/qq_61727355/article/details/126626117