最近项目也慢慢接触到es6了,新东西出来确实方便不少,下班后没事也捣鼓一下,顺便熟悉。
关于函数一个新东西就是函数现在可以直接传递默认参数,在以前的版本如果要想传递默认函数,一般这样处理:
x=x|| "CSDN";
这样写有个问题如果x传递进来的是false之类的,那默认值不就是后面的默认值了吗。
新es6这样来传递默认参数:
<pre name="code" class="javascript">//es6函数传默认参数
function getY(x,y="yang"){
return x+"-"+y;
}
babel-loader翻译es6后的长这个样子:
"use strict";
//es6函数传默认参数
function getY(x) {
var y = arguments.length <= 1 || arguments[1] === undefined ? "yang" : arguments[1];
return x + "-" + y;
}
乍一看好像也没啥,仔细看看还是长见识了, ==》主要的见识是三目运算符。。。
(arguments.length <= 1 || arguments[1] === undefined) ? "yang" : arguments[1];
三目运算符是右结合的。
恩,好了。
恩?要是x默认编码后什么样,应该这样吧var x=arguments.length<=0||arguments[0] === undefined?"y":arguments[0]
代码会陆续上传到github