函数参数-undefined-默认值-可选参数
1、函数参数为undefined时,触发参数默认值
2、实参数量 < 形参数量,多余的形参值为 underfined
3、设置可选参数
1)JS中:
检测 undefined :
function addNum(num) {
if(num === undefined ) {
num = 3
}
return num
}
console.log(addNum(1)) //
console.log(addNum()) //
使用 运算符|| :
function addNum(num) {
option = option || {};
option.start = option.start || 0;
option.end = option.end || 10;
option.step = option.step || 1;
return option
}
console.log(move({start:4,end:5,step:2})); //{start: 4, end: 5, step: 2}
console.log(move({start:4,step:2})); // {start: 4, step: 2, end: 10}
使用 arguments.length :
function addNum(num) {
if(arguments.length<1){
return 3;
}
return num
}
console.log(addNum()) //
console.log(addNum()) //
2)ES6中:
a、默认声明的参数,不能在函数体中再次用声明
b、参数默认值是惰性求值的
c、默认值参数位置应该是函数的尾参数
d、指定默认值以后,函数的length属性将返回没有执行默认值的参数个数
function addr(x,y=1,z=3){ }
实现原理:
function addr(x) {
var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3;
}
解构赋值默认值:
function add({x = 0 , y = 0} = { } ){ }
add({x:1,y:2}) // x=1 , y =2
add({x:1}) // x=1,y=0
add() // x=0,y=0
区分:
function add({x , y } = { x:0 , y:0 } ){ }
add({x:1,y:2}) // x=1 , y =2
add({x:1}) // x=1,y=undefined
add() // x=undefined,y=undefined 内部实现原理:
function addr() {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
_ref$x = _ref.x,
x = _ref$x === void 0 ? 0 : _ref$x,
_ref$y = _ref.y,
y = _ref$y === void 0 ? 0 : _ref$y;
}
函数参数-undefined-默认值-可选参数的更多相关文章
- Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数
Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数 7.4.4 为外部参数设置默认值 开发者也可以对外部参数设置默认值.这时,调用的时候,也可以省略参数传递本文选自Swift1 ...
- JS中给函数参数添加默认值
最近在Codewars上面看到一道很好的题目,要求用JS写一个函数defaultArguments,用来给指定的函数的某些参数添加默认值.举例来说就是: // foo函数有一个参数,名为x var f ...
- ES6 函数参数的默认值
基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采取变通的方法. function log(x,y){ y = y||'world'; console.log(x,y); } log('k ...
- JS中给函数参数添加默认值(多看课程)
JS中给函数参数添加默认值(多看课程) 一.总结 一句话总结:咋函数里面是可以很方便的获取调用函数的参数的,做个判断就好,应该有简便方法,看课程. 二.JS中给函数参数添加默认值 最近在Codewar ...
- (转)js函数参数设置默认值
原文:http://www.cnblogs.com/RightDear/archive/2013/06/26/3156652.html js函数参数设置默认值 php有个很方便的用法是在定义函数时 ...
- js函数参数设置默认值
php有个很方便的用法是在定义函数时可以直接给参数设默认值,如: function simue ($a=1,$b=2){ return $a+$b;}echo simue(); //输出3echo ...
- Python中定义函数时参数有默认值的小陷阱
在定义函数的时候,如果函数的参数有默认值,有两种类型的参数,一种是整数,字符串这种不可变类型,另一种是列表这种可变类型,对于第一种情况没有什么特殊的地方,但是对于可变类型,有一个微妙的小陷阱. 可变类 ...
- 学习《深入理解C#》—— 可空类型、可选参数和默认值 (第一章1.3)
目录 C#可空类型 C# 可选参数和默认值 C# 可空类型 在日常生活中,相信大家都离不开手机,低头族啊!哈哈... 假如手机厂商生产了一款新手机,暂时还未定价,在C#1中我们该怎么做呢? 常见的解决 ...
- js 的函数参数的默认值问题
js函数参数设置默认值 php有个很方便的用法是在定义函数时可以直接给参数设默认值,如: function simue ($a=1,$b=2){ return $a+$b; } echo simu ...
随机推荐
- mongo fork
logpath=../log/mongodb.log logappend=false dbpath=/hejing/data/db fork=true
- C语言Ⅰ博客作业07
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/9933 我在这个课程的目 ...
- [图像分割] OpenCV 的 GrabCut 函数使用和源码解读
转自 zouxy09 GrabCut 原理参考这里,以下为 GrabCut 源码: ——看别人写的好的代码也很享受,干净利落,有些处理的细节也学习一下. /*M//////////////////// ...
- 【Python】【demo实验24】【练习实例】【打印图样】
原题: 打印出如下图案(菱形): * *** ***** ******* ***** *** * 我的源码: #!/usr/bin/python # encoding=utf-8 # -*- codi ...
- Oracle的查询-单行查询
单行函数:作用于一行,返回一个值 多行函数:作用于多行,返回一个值 字符函数 --小写变大写 select upper('yes') from dual; --YES --大写变小写 select u ...
- 啃掉Hadoop系列笔记(02)-Hadoop运行环境搭建
一.新增一个普通用户bigdata
- Jboss: Using reverse path on top path: /xxx
环境 jboss 5.2 原因 加载资源的协议错误.一般在加载文件的时候,URL 都是以 file: 开头,但是在 jboss 上时,由于其虚拟化了路径,导致协议不一致,并且找不到外部的配置文件. 分 ...
- PyCharm 格式化代码 常用快捷键
ctrl+alt+L 一 常用快捷键 编辑类:Ctrl + D 复制选定的区域或行Ctrl + Y 删除选定的行Ctrl + Alt + L 代码格 ...
- 【div】给div添加滚动条
<div class="infomation" style=" max-height: 500px; overflow: auto;"> style ...
- C#中word文档转html
var path = Request.Url.Host + ":" + Request.Url.Port + list[i].AnnexPath; //html保存路径 strin ...