添加到语言更新中的每一个特性都是从数百万开发者的需求中提取出来的。采用规范后,减轻了编程人员的痛苦,给程序员带来了方便。

我们经常写这个


函数钙(x,y){
x = x | | 0;
Y = y | | 0;
对x进行
返回
}



简单地说,x,y提供一个默认值为0,没有时间x,y值0操作。

以及定义Ajax


功能AJAX(URL,异步,数据类型){
异步异步错误= = =!
数据类型= datatype'json| |
…
}



他用一个简单的Ajax功能,原生js封装URL异步和数据类型所需的,可选的,即不填写JSON格式的默认同步请求和返回数据。

同样,矩形类的定义


函数矩形(宽度,高度){
this.width =宽度| | 200;
this.height =高度| | 300;
}



当新不传递任何参数时,也会创建一个默认宽度为200×300的矩形。

无论是钙函数、ajax函数还是矩形类,我们都需要处理函数中的默认值,如果语言本身处理的话,不是吗6提供此功能(默认参数),以下是钙,Ajax和矩形重写新的ES6功能。


函数计算器(x = 0,y = 0){
…
console.log(x,y)
}
钙(00); / /
计算器(1, 4 14);

功能AJAX(URL,async =真实,数据类型=json){
…
console.log(URL,异步,数据类型)
}
Ajax('。 /用户。行动'); / / / user.action ..真正的JSON
Ajax('。 /用户。行动,false); / / / user.action假JSON ..
Ajax('。 /用户。行动',假的,'xml '); / / /错误的XML user.action ..

函数矩形(宽度= 200,高度= 300){
this.width =宽度;
this.height =高度;
}
var =新(矩形); / 200 * 300矩形
var =新矩形(100); 100 * 300矩形
var =新矩形(100, 500); 100 * 500矩形



我们可以看到,从支撑6默认值移到小括号,但也降低了| |操作,那么函数瘦身。默认值应该在参数定义,很简单的样子。O(一_ u)O

默认参数可以在任何位置定义,例如在中间定义一个。


功能AJAX(URL,async = true,成功){
…
console.log(URL,异步,成功)
}



默认参数设置的定义,URL和成功是需要通过,当中间参数需要设置为未定义


Ajax(用户/动作,未定义,函数()){

})



不要把不确定的注意,想当然的空,即使空= =,null,异步没有函数体空真。

需要注意以下几点:

1。当定义默认参数时,函数的长度属性将减少,也就是说,在计算长度时不包含几个默认参数。


函数计算器(x = 0,y = 0){
…
console.log(x,y)
}
功能AJAX(URL,async =真实,数据类型=json){
…
console.log(URL,异步,数据类型)
}
console.log(calc.length); / / 0
console.log(阿贾克斯。长度); / / 1




2。不能通过允许和const再次声明默认值,var可以


函数ajax
var
让async = 3; / /错误
常量(成功=函数){;错误
}




更有趣的是默认参数不能是一个值类型,它可以是一个函数调用。


功能getcallback(){
返回函数(){
返回代码
}
}

功能AJAX(URL,异步,成功= getcallback()){
…
console.log(URL,异步,成功)
}



可以看出,参数成功是一个函数调用。如果我们调用Ajax,如果我们不通过第三个参数,我们将执行getcallback功能。这个函数返回一个新的函数赋值给成功,这是一个非常强大的功能,给程序员很大的空间去想象。

例如,这个特性的使用可以强制指定一个参数,并且不报告错误。


功能throwif(){
把新的错误(参数不传输);
}

功能AJAX(URL = throwif(),async = true,成功){
返回的URL;
}
ajax(错误::);



以上是本文的全部内容,希望大家能喜欢。