es6函数扩展
程序员文章站
2023-12-22 12:33:34
...
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>函数扩展</title>
</head>
<body>
<script>
//函数参数默认值
{
function test(x, y = 'world') {
console.log(x, y);
}
test('hello');//hello world
}
//作用域问题
{
let x = 'test'
function test2(x, y = x) {
console.log(x, y);
}
test2('kill');//kill kill
test2();//undefined undefined
function test3(c, y = x) {
console.log(x, y);
}
test3();//test test
//理解:一个小括号就是一个小作用域,找不到当前值,才去上级寻找
}
// rest参数
//把输入的参数转换成数组,输入不确定个参数
//rest参数之后,不能有其它的参数
{
function test4(...arg) {
for(let v of arg) {
console.log(v);
}
}
test4(1, 2, 3, 4);
// 1
// 2
// 3
// 4
}
//扩展运算符
{
console.log(...[1, 2, 4]);
//1 2 4
}
//尾调用
//可以优化性能
{
function tail(x) {
console.log(x);
}
function f(x) {
return tail(x);
}
f(33);//33
}
</script>
</body>
</html>