es6中参数【默认值,扩展运算符】
- 参数默认值
1、普通参数
function info(age,name="grace"){
console.log(name);
}
info(); //输入:grace
2、对象参数【参数为对象时,不输入任何参数,需要进行处理】
//Handling named parameters【tip:参数name与传递进来的对象中的属性名name需要一一对应】
function selectEntries({ name=0, end=-1, step=1 }) {
console.log(name);
}
selectEntries({name:"Jane"});//结果:Jane //selectEntries();//error: Cannot match against 'undefined' or 'null'.针对这一问题给出下面函数的处理方案 function selectEntries2({ name="lea", end=-1, step=1 }={}) {
console.log(name);
}
selectEntries2();//结果:lea
- 扩展运算符
1、基本用法【函数传参】
//2、From arguments to rest parameters【...】
function allArgs(...args) {
console.log(...args);//结果:2,3,4,5
console.log(args);//结果数组:[2,3,4,5]
for (const arg of args) {
console.log(arg);
}
}
allArgs(2,3,4,5);
2、Math中的应用
//【func.call(obj,arg1,arg2,......]】【上面是为了检测数组中最大的值,所以用apply,此处的call仅用于巩固】
const max1 = Math.max.call(null,-1,5,11,3);
console.log(max1); //结果:11
//es5【func.apply(obj,[arg1,arg2,......]】
const max = Math.max.apply(null, [-1, 5, 11, 3]);
console.log(max); //结果:11
//es6
const max2 = Math.max(...[-1, 5, 11, 3]);
console.log(max2); //结果:11
3、数组的push
//向一个数组添加一个数组的数据【改变原数组】
let arr = ['lea'];
arr.push('joa','pia');//添加单个值
console.log(arr);//结果:[ 'lea', 'joa', 'pia' ]
//es5
arr.push.apply(arr,['a','b']);//通过数组添加
console.log(arr);//结果:[ 'lea', 'joa', 'pia', 'a', 'b' ] //es6
arr.push(...['a','b']);//将数组解析为多个值
console.log(arr);//结果:[ 'lea', 'joa', 'pia', 'a', 'b', 'a', 'b' ]
4、合并数组
//合并数组
let arr = ['lea'];
//es5 concat,【返回新的数组,不影响原数组】
console.log(arr.concat([2,4]));//结果:[ 'lea', 2, 4 ] //es6
console.log([...arr,...['cd']]);//结果:[ 'lea', 'cd' ]
es6中参数【默认值,扩展运算符】的更多相关文章
- ES6函数参数默认值作用域的模拟原理实现与个人的一些推测
一.函数参数默认值中模糊的独立作用域 我在ES6入门学习函数拓展这一篇博客中有记录,当函数的参数使用默认值时,参数会在初始化过程中产生一个独立的作用域,初始化完成作用域会消失:如果不使用参数默认值,不 ...
- [ES6系列-03]ES6中关于参数相关特性详解(参数默认值与参数解构赋值与剩余参数)
[原创] 码路工人 大家好,这里是码路工人有力量,我是码路工人,你们是力量. 今天总结一下 ES6 中跟参数相关的内容. 欢迎补充斧正.留言交流. 让我们互相学习一起进步. 1. ES6 参数默认值( ...
- ES6笔记之参数默认值(译)
原文链接:http://dmitrysoshnikov.com/ 原文作者:Dmitry Soshnikov 译者做了少量补充.这样的的文字是译者加的,可以选择忽略. 作者微博:@Bosn 在这个简短 ...
- ES6 随记(3.4.1)-- 函数的拓展(参数默认值,扩展运算符)
上一章请见: 1. ES6 随记(1)-- let 与 const 2. ES6 随记(2)-- 解构赋值 3. ES6 随记(3.1)-- 字符串的拓展 4. ES6 随记(3.2)-- 正则的拓展 ...
- es6(三):es6中函数的扩展(参数默认值、rest参数、箭头函数)
1.函数可以设置参数默认值 function test1(x,y=1){ console.log(x,y) } test1(10)//10 1 2.rest参数:形式为...变量名 function ...
- ES6 - 函数扩展(函数参数默认值)
函数参数默认值 ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法. function log(x, y) { y = y || 'World'; console.log(x, y); ...
- ES6中函数参数默认值问题
参数默认值 // 以前的参数默认值写法 let fn = (a, b) => { a = typeof a === "undefined" ? 10 : a b = type ...
- ES6学习 --函数参数默认值与解构赋值默认值
1. ES6的解构ES6中引入了解构赋值的操作,其作用是:将值从数组Array或属性从对象Object提取到不同的变量中 即分为两种情况:从数组Array中解构,以及从对象Object中解构 ①.从数 ...
- ES6参数默认值
参数默认值 1.首先,来看一下es5中的函数默认值 var a = a || 10; var b = b || "none" // 当a的值或者b的值为undefined时,根据逻 ...
随机推荐
- 【Nginx系列】Nginx编译与安装
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器.Nginx是由Igor Sysoev为俄罗斯访问第二的Rambler.ru站点开发的. 一.Nginx ...
- 【备忘】Idea的那些事
说到Java的IDE,似乎eclipse和Idea是目前的主流.然而,OO的课程组却一直在推荐使用eclipse,于是很多人就这样错过了Idea这样强大的IDE工具.本文将会对于Idea和Idea的一 ...
- alpha冲刺第三天
一.合照 二.项目燃尽图 三.项目进展 今天是一个瓶颈期,在昨天被困住的地方今天还是没能解决,所以今天的项目进展并没有发生什么变化. 今天晚上xl和lj去实验室找学姐了,在学姐的帮助下大概有了一点思路 ...
- 项目Alpha冲刺Day9
一.会议照片 二.项目进展 1.今日安排 侧栏及相关刷新完成,项目结构小变动.个人信息和修改密码后台完成. 2.问题困难 前后台联调出现问题,配置修改了半天还没改好.好像是会话丢失,初步判断应该是后台 ...
- C++类型萃取
stl中的迭代器和C++中的类型萃取: http://www.itnose.net/detail/6487058.html 赐教!
- 算法第四版 coursera公开课 普林斯顿算法 ⅠⅡ部分 Robert Sedgewick主讲《Algorithms》
这是我在网上找到的资源,下载之后上传到我的百度网盘了. 包含两部分:1:算法视频的种子 2:字幕 下载之后,请用迅雷播放器打开,因为迅雷可以直接在线搜索字幕. 如果以下链接失效,请在下边留言,我再更新 ...
- 大数据技术Hadoop笔试题
Hadoop有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上.以下是由应届毕业生网小编J.L为您整理推荐的面试笔试题目和经验,欢迎参考阅读. 单项选择题 1. 下面哪个程序负责 H ...
- 日志 --BUG记录
2014-12-15日 在做520wawa的免费推广 部署web应用时 错把path设置为"/*",导致启动tomcat时,导致错误 <Context path=&quo ...
- 第十二条:考虑实现Comparable接口
与前面讨论的方法不同,compareTo()方法并没有在Object类中定义.相反,它是Comparable接口中唯一的方法. 一个类的实例对象要想是可以比较大小的,那么这个类需要实现Comparab ...
- vue初尝试--项目结构
新建一个项目之后,我们来看一下项目的目录结构 几个主要文件的内容 index.html文件(入口文件,系统进入之后先进入index.html) <!DOCTYPE html> <ht ...