javascript核心技术(四十九) 使用展开运算法给函数传参

[复制链接]
查看: 1130|回复: 31
发表于 2023-1-29 12:34:35 | 显示全部楼层 | 阅读模式
在前面第十三节中,我们已经讲过很多种参数的传参方式

javascript核心技术(十三)函数的参数 实参 形参 默认值 https://www.teamczyx.com/thread-1964-1-1.html

下面我们再补充一种,就是ES6新增的...展开运算符,使用展开运算符可以自由的给函数传入一个数组作为参数。


<!DOCTYPE html>
<html>

<head>
        <title>使用展开运算法给函数传参</title>
</head>

<body>
        <script type="text/javascript">
        console.log("展开数组");
        var arr = [3,4,5];
        console.log(arr);
        console.log(...arr);
        console.log(arr);//展开运算符不会改变原数组

        console.log("展开字符串");
        var str = 'hello';
        console.log(str);
        console.log(...str);
        console.log('h', 'e', 'l');


        console.log("使用展开数组的写法给函数传参");
        function f1(m,n){
                return m+n;
        }
        //如果参数放在数组中
        var arr = [3,4];
        //ES5中需要这样传入
        console.log( f1(arr[0], arr[1]) );
        console.log( f1.apply(null, arr) );
        //ES6这样传入
        console.log( f1(...arr) ); // m=3 n=4
        //由于f1函数定了两个形参,所以不论传入多少实参,它都只能接收两个
        var arr = [3,4,5,6];
        console.log( f1(...arr) );// m=3 n=4


        console.log("如果函数参数个数不确定");
        //ES5中,可以在函数内部使用arguments获取到所有的实参
        function f2(){
                console.log(arguments);
        }
        var arr = [3,4];
        f2.apply(null, arr);
        var arr = [3,4,5,6];
        f2.apply(null, arr);
        //ES6中,在形参上使用...声明一个数组变量,接收所有的实参
        function f2(...x){
                console.log(x);
        }
        f2(3,4,5);
        f2(3,4,5,6);



        //还可以使用...语法,接收剩余的参数
        function f3(m,n, ...x){
                console.log(m,n,x);
        }
        f3(3,4,5);
        f3(3,4,5,6);

        </script>
</body>

</html>



javascript核心技术(四十九) 使用展开运算法给函数传参

请大家认真理解并总结以上代码,该语法在JS中被大量引用。

易博软件介绍

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-2-22 01:59:50 | 显示全部楼层
谢谢您的提醒。我好象也在犯你的错误

0

主题

10

帖子

6

积分

营销入门

Rank: 2

积分
6
发表于 2023-3-5 16:24:11 | 显示全部楼层
恩懂了很多啊谢谢咯
发表于 2023-3-16 02:02:53 | 显示全部楼层
谢楼主!

0

主题

18

帖子

10

积分

营销入门

Rank: 2

积分
10
发表于 2023-3-24 17:28:10 | 显示全部楼层
我很喜欢你的文章啊,希望你能够多写一些啊,对我的帮助回很大的  

0

主题

24

帖子

13

积分

营销入门

Rank: 2

积分
13
发表于 2023-3-31 06:43:09 | 显示全部楼层
是啊,重知识轻技术的后果

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-4-4 16:45:33 | 显示全部楼层
学海无崖苦做舟,努力,努力,再努力!

0

主题

18

帖子

10

积分

营销入门

Rank: 2

积分
10
发表于 2023-4-10 00:48:26 | 显示全部楼层
感触很多!!!  在看这贴子前,我和你一样有同样的想法、同样的编程方法。。  而且我是个学生。  我很高兴看到这贴子,它能让我少走很多歪路!!!  

0

主题

39

帖子

21

积分

营销入门

Rank: 2

积分
21
发表于 2023-4-14 17:47:00 | 显示全部楼层
是的。

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-4-19 15:52:13 | 显示全部楼层
我感到一种力量的存在。我是一名刚学VB的学生,看过之后感触很大。我会好好学习这门语言的,谢谢你对我的启发。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表