ES6之函数参数
ES6中对于函数参数主要增加了以下内容:
1.参数的扩展/数组的展开;
2.默认参数。
什么是参数的扩展?
看下面代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>函数参数的扩展</title>
<script>
function show(a,b,...args) {
console.log(a)
console.log(b)
console.log(args)
}
show(2,3,5,6,88,44)
</script>
</head>
<body> </body>
</html>
我们可以看出返回结果如下:
我们可以看到没定义的参数全部都放到了args里面去了,这就是函数参数的扩展。需要注意的是,...args只能放在最后一个。这里的args可以随便命名,你叫...c,...d都可以的。
什么是数组的展开?
看下面代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>函数参数的展开</title>
<script>
let arr1 = [1,2,3]
let arr2 = [4,5,6]
let arr = [...arr1,...arr2]
console.log(arr);
</script>
</head>
<body> </body>
</html>
返回结果如下图:
它的展开效果就相当于直接把数组的内容写在一块。
默认参数如何用?
函数里面默认参数很常见。ES6中如何设置默认参数呢?看下面代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>默认参数</title>
<script>
function draw(a,b=100,c=12) {
console.log(a,b,c)
}
draw(200);
draw(300,33,55);
</script>
</head>
<body> </body>
</html>
返回结果如下:
得出结论了吗?ES6中默认参数直接在函数参数里面赋值就可以啦~~
ES6之函数参数的更多相关文章
- ES6学习 --函数参数默认值与解构赋值默认值
1. ES6的解构ES6中引入了解构赋值的操作,其作用是:将值从数组Array或属性从对象Object提取到不同的变量中 即分为两种情况:从数组Array中解构,以及从对象Object中解构 ①.从数 ...
- ES6中函数参数默认值问题
参数默认值 // 以前的参数默认值写法 let fn = (a, b) => { a = typeof a === "undefined" ? 10 : a b = type ...
- 深入理解ES6之函数
一:关于函数的参数: 可以接受任意数量的参数而无视函数声明的参数数量是js函数的独特之处. 1:参数默认值 ES6之前做法: function makeRequest(url,timeout,call ...
- ES6学习--函数剩余参数 (rest参数)
ES6 引入 rest 参数(形式为“...变量名”),用于获取函数的多余参数,这样就不需要使用arguments对象了.rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中.(可以拿到除 ...
- ES6 学习笔记之三 函数参数默认值
定义函数时为参数指定默认值的能力,是现代动态编程语言的标配.在ES6出现之前,JavaScript是没有这种能力的,框架为了实现参数默认值,用了很多技巧. ES6 的默认参数值功能,与其他语言的语法类 ...
- ES6 函数参数的默认值
基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采取变通的方法. function log(x,y){ y = y||'world'; console.log(x,y); } log('k ...
- ES6函数参数默认值作用域的模拟原理实现与个人的一些推测
一.函数参数默认值中模糊的独立作用域 我在ES6入门学习函数拓展这一篇博客中有记录,当函数的参数使用默认值时,参数会在初始化过程中产生一个独立的作用域,初始化完成作用域会消失:如果不使用参数默认值,不 ...
- ES6—带默认值的函数参数及其作用域
在学习ES6函数一章时,发现了一个有意思的现象,原文描述如下: 这段话主要state了3个事实: ①函数参数有默认值时,会在声明初始化阶段形成一个单独的作用域 ②这个作用域在初始化结束后消失 ③没默认 ...
- es6和es5函数参数和arguments的差别
注: 这里说的 es5 代表的都是非严格模式下. es6之前函数的参数不能传默认值: function fn(a, b){ console.log(a) console.log(b) } fn(2) ...
随机推荐
- MySQL 5.6学习笔记(索引的创建与删除)
1. 创建索引 1.1 创建新表时同时建立索引 语法: create table table_name[col_name data_type] [unique|fulltext|spatial][in ...
- Bug:java.lang.StackOverflowError: stack size 8MB
在开发的时候遇到了这个Bug:java.lang.StackOverflowError: stack size 8MB Log: 11-27 14:16:37.093 21892-21892/com. ...
- remoting生命周期
https://www.cnblogs.com/luomingui/archive/2011/07/09/2101779.html
- node webkit(nw.js) 设置自动更新
原理:把更新的文件放在服务器上,设置一个客户端版本号,每次打开客户端的时候,通过接口获取服务器上的版本,如果高于本地的版本就下载服务器上的代码,低于或等于就不更新 <script> var ...
- STL学习笔记— —无序容器(Unordered Container)
简单介绍 在头文件<unordered_set>和<unordered_map> 中定义 namespace std { template <typename T, ty ...
- 【小白的CFD之旅】23 串行与并行
夏日的早晨,被酷热和蚊子骚扰了一夜的小白刚进入梦乡就被老蓝的电话给惊醒了. “8点开会!”老蓝说话永远那么简短有力,根本不给人请假的时间就挂了电话. 小白一看时间,都7点半了,得,这懒觉睡不成了.小白 ...
- 每日英语:China Destroys Six Tons of Confiscated Ivory
BEIJING—Chinese government officials destroyed more than six tons of ivory that had been illegally s ...
- Mac下终端(terminal)的一些快捷键
Mac下终端(terminal)的一些快捷键 行首ctrl + a 行尾ctrl + e 两个终端窗口切换alt + 方向键 命令中,上一个单词esc + b (iterm2) 下一个单词esc + ...
- 【机器学习】K-Means算法
K-Means算法是一种cluster analysis的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法. 问题 K-Means算法主要解决的问题如下图所示.我们可以看到, ...
- WIN锁屏+鼠标移动事件
winexec('rundll32.exe user32.dll, LockWorkStation', sw_hide); 1.shutdown.bat(关机) rundll32.Exe shell ...