004. ES6之函数的扩展

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1. 函数参数的默认值

ES6 允许为函数的参数设置默认值,

function log(x, y = 'World') {console.log(x, y);
}log('Hello') // Hello World
log('Hello', 'China') // Hello China
log('Hello', '') // Hello// 1. 参数变量是默认声明的,所以不能用 let 或 const 再次声明
function foo(x = 5) {let x = 1; // errorconst x = 2; // error
}// 2. 使用默认值时,函数不能有同名参数// 3. 参数默认值不是传值的,而是每次都重新计算默认值表达式的值
let x = 99;
function foo(p = x + 1) {console.log(p);
}
foo() // 100
x = 100;
foo() // 101

2. 与结构赋值默认值结合使用

function foo({x, y = 5}) {console.log(x, y);
}
foo({}) // undefined 5
foo({x: 1}) // 1 5
foo({x: 1, y: 2}) // 1 2
foo() // TypeError: Cannot read property 'x' of undefined// 提供函数默认值
function foo({x, y = 5} = {}) {console.log(x, y);
}
foo() // undefined 5

3. 参数默认值的位置

// 例一
function f(x = 1, y) {return [x, y];
}f() // [1, undefined]
f(2) // [2, undefined])
f(, 1) // 报错
f(undefined, 1) // [1, 1]// 例二
function f(x, y = 5, z) {return [x, y, z];
}f() // [undefined, 5, undefined]
f(1) // [1, 5, undefined]
f(1, ,2) // 报错
f(1, undefined, 2) // [1, 5, 2]

如果传入 undefined ,将触发该参数等于默认值, null 则没有这个效果

function foo(x = 5, y = 6) {console.log(x, y);
}foo(undefined, null)
// 5 null

4. 函数的 length 属性 是指没有指定默认值的参数个数

5. name 属性

6. 箭头函数

7. 双冒号运算符

转载于:https://my.oschina.net/u/3563169/blog/1861243

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/390074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构 | 链表:1097 删除重复元素

代码提交之后一直说段错误。我以为是数组开的不够大&#xff0c;但是随着数组一点一点开大&#xff0c;还是有一个case没有AC。最终我发现&#xff1a;是有个边界条件没有考虑到 void printList(const vector<Node>& a){if(!a.size()) return;FF(i,a.size()-1){print…

算法之美 : 位运算

上一小节我们用三道题了解一下面试过程中栈和队列的常见面试题。本小节笔者将通过几个 位运算 的题目来带大家熟悉下常用的位运算知识。 相比于栈和队列来讲&#xff0c;笔者自身认为位运算需要掌握的知识就要多一些&#xff0c;包括对于数字的二进制表示&#xff0c;二进制的反…

447. 回旋镖的数量

447. 回旋镖的数量 给定平面上 n 对 互不相同 的点 points &#xff0c;其中 points[i] [xi, yi] 。回旋镖 是由点 (i, j, k) 表示的元组 &#xff0c;其中 i 和 j 之间的距离和 i 和 k 之间的距离相等&#xff08;需要考虑元组的顺序&#xff09;。 返回平面上所有回旋镖的…

一名3年工作经验的程序员应该具备的技能

本文转自:https://m.imooc.com/article/details?article_id7557 前言 因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结&#xff0c;因此有了这篇文章。这篇文章大部分内容都是面向整个程序员群体的&#xff0c;当然因为LZ本身是做Java开发的&#xff0c;因此有一部…

js 排序算法总结

1.冒泡排序 平均时间复杂度O(N2) 最好情况O(N)最坏情况O(N2) 空间复杂度O(1) function bubbleSort(arr){if(arr.length < 1)return arr;var flag 1; // 标识是否进行交换for(var i0; i < arr.length; i){if(i !0 && flag) break;for(var j0; j <…

524. 通过删除字母匹配到字典里最长单词

524. 通过删除字母匹配到字典里最长单词 给你一个字符串 s 和一个字符串数组 dictionary 作为字典&#xff0c;找出并返回字典中最长的字符串&#xff0c;该字符串可以通过删除 s 中的某些字符得到。 如果答案不止一个&#xff0c;返回长度最长且字典序最小的字符串。如果答案…

django开发商城(提供初始数据,商城首页及购物车)

1.爬取数据 2.json数据转化为sql语句 3.新建轮播图模型(模型名与sql语句对应表名相同) class Wheel(models.Model):imgmodels.CharField(max_length150)namemodels.CharField(max_length20)trackidmodels.CharField(max_length20) 4.终端打开mysql,执行插入语句 5.在首页进行展…

多语言版希尔排序

2019独角兽企业重金招聘Python工程师标准>>> 简介 希尔排序(Shells Sort)是插入排序的一种又称“缩小增量排序”&#xff08;Diminishing Increment Sort&#xff09;&#xff0c;是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L…

UML 中extend和include的区别

在UML用例图中有两种关系——包含和扩展&#xff0c;容易混淆&#xff0c;下面通过一张表来区别一下这两种关系。 转载于:https://www.cnblogs.com/yonyong/p/8555547.html

hdu 6301 Distinct Values(贪心)题解

题意&#xff1a;长为n的串&#xff0c;给你m个区间&#xff0c;这些区间内元素不重复&#xff0c;问这样的串字典序最小为&#xff1f; 思路&#xff1a;用set保存当前能插入的元素&#xff0c;这样就能直接插入最小元素了。对操作按l排序&#xff0c;因为排过的不用排&#x…

浏览器兼容CSS渐进增强 VS 优雅降级如何选择

由于低级浏览器不支持 CSS3&#xff0c;但是 CSS3 特效太优秀不忍放弃&#xff0c;所以在高级浏览器中使用CSS3&#xff0c;而在低级浏览器只保证最基本的功能。二者的目的都是关注不同浏览器下的不同体验&#xff0c;但是它们侧重点不同&#xff0c;所以导致了工作流程上的不同…

细数sass安装中遇到的坑

前言&#xff1a; 前两天打算清理电脑的时候&#xff0c;遇到了一点特殊的问题&#xff0c;打算重装一些东西&#xff0c;其中就有我一直用的顺手的SASS预编译工具。 但是在重装的时候&#xff0c;我发现我居然不会用了&#xff1f;&#xff1f;&#xff1f; 靠&#xff0c;要不…

442. 数组中重复的数据

442. 数组中重复的数据 给定一个整数数组 a&#xff0c;其中1 ≤ a[i] ≤ n &#xff08;n为数组长度&#xff09;, 其中有些元素出现两次而其他元素出现一次。 找到所有出现两次的元素。 你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗&#xff1f; 示例&am…

[bzoj 2726] 任务安排 (斜率优化 线性dp)

3月14日第三题&#xff01;&#xff01;&#xff01;&#xff08;虽然是15号发的qwq&#xff09; Description 机器上有N个需要处理的任务&#xff0c;它们构成了一个序列。这些任务被标号为1到N&#xff0c;因此序列的排列为1,2,3…N。这N个任务被分成若干批&#xff0c;每批…

2018年,牛客网小白月赛5

第一次啊&#xff0c;补题&#xff0c;希望大佬批评。 题目按我补题顺序来的。 https://www.nowcoder.com/acm/contest/135#question H 题 最大公倍数 题意:给出两个数&#xff0c;求最大公倍数 欧几里德算法算出最大公约数k; 然后算出。最大公倍数即可 代码如下&#xff1a; …

292. Nim 游戏

292. Nim 游戏 你和你的朋友&#xff0c;两个人一起玩 Nim 游戏&#xff1a; 桌子上有一堆石头。你们轮流进行自己的回合&#xff0c;你作为先手。每一回合&#xff0c;轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。 假设你们每一步都是最优解。请编写一个函…

0710 mux协议的作用(ppp拨号时如何和gprs进行at指令交互)

ppp拨号使gprs上网的同时如何和gprs模块进行at指令的交互&#xff0c;这是一个问题。 在linux中&#xff0c;ppp拨号上网是内核中支持的&#xff0c;只需要在内核配置中选上。 ppp拨号的方式使gprs进行上网与at指令使gprs上网&#xff0c;两者之间有不同。ppp是一个将用at指令使…

爬虫笔记(十二)——浏览器伪装技术

为什么要进行浏览器伪装技术&#xff1f; 有一些网站为了避免爬虫的恶意访问&#xff0c;会设置一些反爬虫机制&#xff0c;对方服务器会对爬虫进行屏蔽。常见的饭爬虫机制主要有下面几个&#xff1a; 1. 通过分析用户请求的Headers信息进行反爬虫 2. 通过检测用户行为进行反…

650. 只有两个键的键盘

650. 只有两个键的键盘 最初记事本上只有一个字符 ‘A’ 。你每次可以对这个记事本进行两种操作&#xff1a; Copy All&#xff08;复制全部&#xff09;&#xff1a;复制这个记事本中的所有字符&#xff08;不允许仅复制部分字符&#xff09;。Paste&#xff08;粘贴&#x…

Codeforces 626F Group Projects (DP)

题目链接 8VC Venture Cup 2016 - Elimination Round 题意 把$n$个物品分成若干组&#xff0c;每个组的代价为组内价值的极差&#xff0c;求所有组的代价之和不超过$k$的方案数。 考虑DP&#xff0c;$f[i][j][k]$表示考虑到第$i$个物品的时候&#xff0c;还有$j$组尚未分配完…