1+X考试课程(十)JavaScript函数

本文详细介绍了JavaScript中的Map和Set数据结构,包括创建、添加、删除、修改和查找等操作。此外,还深入讲解了函数的结构、创建、调用及获取所有参数的方法,特别是arguments对象和rest参数的使用。同时,提到了JavaScript中的自动分号插入(ASI)机制及其影响,以及变量的作用域和变量提升的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Map

map属于一种新的数据类型,是一组 键值对 的结构,具有 快速查找 的速度。

创建

1.以嵌套数组的方式为map添加键值对数据。

 <script>
        var score = new Map([['小花',95],['小明',88],['李狗蛋',99]]);
        console.log(score);
 </script>

在这里插入图片描述
2.先创建map对象,再逐个添加数据。

<script>
        var a = new Map();
        a.set('name','小芳');
        a.set('sex','女');
        a.set('age','18');
        console.log(a);
</script>

之后的map操作将都以此创建的Map对象举例。
在这里插入图片描述

添加

set()
上述创建方法2即为添加例子。

删除

delete()

		a.delete('sex');

修改

set()
当对相同的值设置不同的属性时,相当于修改。

		a.set('birth',1990);
        a.set('birth',2000);
        console.log(a);

在这里插入图片描述

查找

has()
返回true和false来反应查找结果。

console.log(a.has('age'));

在这里插入图片描述

Set

一组key集合。
特点:不存储value且key值不重复。

创建

<script>
        // 创建
        var a = new Set();	//空set
       
        //特点:重复元素会被自动过滤
         var a2 = new Set([1,2,2,3,3,4,4,5,5]);
        console.log(a2);
 </script>

在这里插入图片描述

添加

add()

		var a1 = new Set([1,2,3]);
        a1.add(4);

删除

delete()

a1.delete(3);

函数

函数的结构

function:指出这是一个函数定义
f:代表函数名称
x:代表传入的参数
{}代表函数体,可以包含任何语句、任何类型,空语句。

function f(x) {
       }

创建函数

1.声明函数:

function f(x) {
       }

2.声明对象创建函数:

	var sum = function (x) {
		 };

注意:这里需要在函数后添加 分号

调用函数

创建函数。

		var sum = function (x) {
            if (x>0){
                return x;
            } else {
                return -x;
            }
        };

传入参数调用

console.log(sum(10));

在这里插入图片描述
传入多参数

console.log(sum(10,'小明',null,true));

说明多参数不影响调用,只是无意义。
在这里插入图片描述
检查参数类型
在调用函数时,为避免参数为undefined。可以对参数进行检查。

	function f1(x) {
            if (typeof x !== "number"){
                throw '输入的类型不属于number';
            }else if (x>=0) {
                return x;
            }else {
                return -x;
            }
        }

传入字符串。

 console.log(f1('小明'));

在这里插入图片描述
传入正确类型。

console.log(f1(10));

在这里插入图片描述

获取所有参数

arguments

概念:一个对应于传递给函数的参数的类数组对象。
注意
1.不是数组,除了length属性和索引元素之外没有任何Array属性。
2.只在函数内部起作用(永远指向函数内部调用传入的所有参数)。

	 function a(x) {
            console.log('x = '+ x);
            for (var i = 0;i<arguments.length;i++){
                console.log('arguments'+i+'='+arguments[i]);
            }
        }
        console.log(a(10,20,30,'小花'));

arguments.length来确定传递给函数参数的个数。
在这里插入图片描述

rest

使用格式:...rest
注意:它是一个真正的数组。

		function sum1(a,b,...rest) {
            console.log('a = ' + a);
            console.log('b = ' + b);
            console.log('rest = '+rest);
        }
        console.log(sum1(1,2,3,4,5,6,7));

在这里插入图片描述

ASI机制

是一种在行末自动添加分号的机制。
以下举return例子:

1.当return和大括号{}在同一行时,代码正常运行。

	function s() {
            return {
                name:'s'
            };
        }
        console.log(s());

在这里插入图片描述
2.当在return后回车,另起一行写大括号。

	function s() {
            return
            {
                name:'s'
            };
        }
        console.log(s());

此时的代码显示undefined。
在这里插入图片描述
在return之后回车,javaScript机制会自动默认添加分号,即:

	function s() {
            return;
            {
                name:'s'
            };
        }
        console.log(s());

其他详细请点击链接。
JavaScript ASI 机制详解

变量作用

1.var 变量存在作用域

	function sum() {
            var x = 1;
            x = x + 1;
        }
        console.log(x = x+2);

函数外使用函数内的变量会报错。
在这里插入图片描述
2.同函数内部的同名变量互不影响。

    function sum() {
            var x = 1;
            x = x + 1;
        }
    function sum1() {
            var x = 3;
        }

3.js中函数时可以嵌套的,内部函数可以调用外部函数的变量。

	function sum2() {
            var x = 1;
            function s1() {
                var y = x + 1;
            }

变量提升

提升变量的声明至顶部,不包括值。

	function foo() {
              var x = 'hello' + y;
              console.log(x);
              var y = 'baby';
          }
          foo();

在使用变量之后声明变量,因为变量的提升,所以不会报错。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值