ES6函数

函数
函数默认参数
在ES5我们给函数定义参数默认值是怎么样?
function action(num) {
num = num || 200
//当传入num时,num为传入的值
//当没传入参数时,num即有了默认值200
return num
}

但细心观察的同学们肯定会发现,num传入为0的时候就是false,但是我们实际的需求就是要拿到num = 0,此时num = 200 明显与我们的实际想要的效果明显不一样
ES6为参数提供了默认值。在定义函数时便初始化了这个参数,以便在参数没有被传递进去时使用。
function action(num = 200) {
console.log(num)
}
action(0) // 0
action() //200
action(300) //300

箭头函数
ES6很有意思的一部分就是函数的快捷写法。也就是箭头函数。
箭头函数最直观的三个特点。
● 不需要 function 关键字来创建函数
● 省略 return 关键字
● 继承当前上下文的 this 关键字
//例如:
[1,2,3].map(x => x + 1)

//等同于:
[1,2,3].map((function(x){
return x + 1
}).bind(this))

说个小细节。
当你的函数有且仅有一个参数的时候,是可以省略掉括号的。当你函数返回有且仅有一个表达式的时候可以省略{} 和 return;例如:
var people = name => 'hello' + name
//参数name就没有括号

作为参考
var people = (name, age) => {
const fullName = 'hello' + name
return fullName
}
//如果缺少()或者{}就会报错

要不整一道笔试题?哈哈哈哈哈哈哈哈。我不管我先上代码了
// 请使用ES6重构以下代码

var calculate = function(x, y, z) {
if (typeof x != number) { x = 0 }
if (typeof y != number) { y = 6 }

var dwt = x % y
var result

if (dwt == z) { result = true }
if (dwt != z) { result = false }

return result
}

const calculate = (x, y, z) => {
x = typeof x !== 'number' ? 0 : x
y = typeof y !== 'number' ? 6 : y
return x % y === z
}

posted @ 2018-08-30 09:12  maps..xy  阅读(167)  评论(0编辑  收藏  举报