ES6语法:函数新特性(一)

ES6 函数

引言:java

函数在任何语言中偶读很重要,java里面的函数一般叫作方法,实际上是一个东西,使用函数能够简化更多的代码,代码结构看着更加清晰。今天咱们来学学ES6语法中,函数有什么变化。es6

虽然如今的有比ES6更高的版本,可是主流通常都是ES6。es6中的函数相对于以前的版本提高了不少,相对来讲在某些特定条件下,用新的函数很方便,也更简洁,功能性更增强大。express

1.带参数默认值的函数。

咱们都知道js是弱类型语言,不知道你有没有试过,或者学到过,js的函数声明事后,在调用这个函数的时候能够忽略这个函数所带的参数,就是说,声明的这个函数本来是带有参数的,可是呢,我在调用的时候是不须要传参的,这样也不会报错,而那些参数会有一个默认的值。来看看代码。函数

function testParameter(parameter1,parameter2){
	console.log(parameter1);
	console.log(parameter2);
}
testParameter();

这个是能够运行的,不会报错的,结果是什么呢?两个都是undefined。这就是弱类型语言的特色之一,与java不一样,java会强制要求你输入参数。
通常来讲,咱们在实际项目中,若是有这种用法的话,这些参数都是有用的也就是须要参数有一个默认值。在es6以前,若是没有传参数,并且这个参数又是须要用到的,须要一个默认值,咱们都须要本身判断这个参数是否是undefined,而后给这个参数设置默认值。这样本身写代码就比较麻烦。所以在es6的时候,函数能够这样声明,给函数的参数设置一个默认值。学习

function defaultParameter(parameter1,parameter2=30){
    console.log(parameter1);
    console.log(parameter2);
}
defaultParameter();

这样咱们就给parameter2设置了一个默认的值为30,parameter1仍是为undefined,虽然这种函数调用能够不传参数,我建议这个时候,这个没有设置默认值的参数仍是尽可能要传。参数的类型能够是任意类型,能够是字符串,数字,函数,对象,均可以设置一个默认的值。
还有一种状况,
以下:code

function defaultParameter1(parameter1="这是第一个参数",parameter2){
	return parameter1+parameter2;
}

console.log(defaultParameter1());

这段代码打印出来的是“这是第一个参数undefined”,而后咱们传一个参数。对象

function defaultParameter1(parameter1="这是第一个参数",parameter2){
	return parameter1+parameter2;
}

console.log(defaultParameter1(20));

你猜如今的结果是什么?你可能会说"20undefined",可是结果然不是这个,结果是"NaN",为何?,仔细的同窗就发现了,咱们传的是一个20,而不是“20”,这个数字20和undefined相加的结果就成了NaN。当咱们传“20”的时候,答案就是“20undefined”,可是我想说的是,若是这时我不想传第一个值怎么办,我想穿第二个值。往下看。字符串

function defaultParameter1(parameter1="这是第一个参数",parameter2){
	return parameter1+parameter2;
}

console.log(defaultParameter1(undefined,"这是第二个参数"));

把第一个参数设置成undefined就好了,而且只有设置成undefined才能使用默认的第一个参数,而后顺利给第二个值设置参数值。get

2.参数默认值为表达式的函数。

前面说了带有默认值参数的函数,这节就为你带来,参数是表达式io

来来来看代码

function expression(name,address=getStr()){
	console.log(name+address);
}
function getStr(){
	return "全栈学习笔记!"
}
expression("wx search");

这样也是可行的,结果你懂的,哈哈,若是你以为能学到很多知识,就试试这个结果,精彩美文天天为你推送!
这里其实有一个有趣的,看下面;

function expression(name,address=name){
	console.log(name+address);
}
function getStr(){
	return "全栈学习笔记!"
}
expression("全栈学习笔记");

这样也是能够的,结果就是会打印出来两个“全栈学习笔记”,而后看看这个

function expression(name=address,address){
	console.log(name+address);
}
function getStr(){
	return "全栈学习笔记!"
}
expression(undefined,"全栈学习笔记");

咱们将这个接收表达式的参数放在前面,就是至关于上面哪种状况反过来,这样是不行的哦! 这一期的函数知识就分享到这,下一期将继续分享函数这一块的知识!若是你发现文中有什么错误或者对我有什么建议能够私信我哦!

相关文章
相关标签/搜索