let f = (a,b)=>a+b;
console.log(f(1,2)); // 3
console.log(1); // NaN : not a number
// 1.参数不足:默认参数
f = (a,b=0)=>a+b; // 默认形参 b = 0
console.log(f(1,2)); // 3
// 2.参数过多: ...剩余参数
f =(a,b)=>a+b;
console.log(f(1,2,3,4)); // 3
// 如何将全部参数接受到?剩余参数 ...
f = (a, b, ...c)=>console.log(a,b,c);
// 将多出来的参数3,4压入到数组c中
console.log(f(1,2,3,4)); //1,2,[3,4]
let arr = [1,2,3,4,5];
//将一个数组打散,变成一个个离散的值,解包
console.log(...arr); // 1,2,3,4,5
// 压包
console.log(f(...arr)); // 1,2,[3,4,5]
//多个参数求值
// f = (a,b,c,d,e,f)=>a+b+c+d+e+f ,* / - 可以举一反三
f = (...arr) => arr.reduce((a,c)=>(a+c)) // a+c a*c a/c a-c
console.log(f(1,2,3,4,5,6,7,8,9,10));
//返回值:函数只能有一个返回值,默认单值返回
//需要返回多个值怎么办?数组,对象
//本质上仍然返回一个值,只不过这是一个引用类型的复合值
// function fn() {
// return [1,2,3];
// }
// 对象和函数的{}重复冲突时,可({})这样来书写
fn = () =>({
id:2,
name:'admin',
age:18
})
res = fn();
console.log(res);
//模板都是用``反引号
// 1.模板字面量
// 反引号:模板字面量, 支持在字符串插入变量/表达式: 插值
// 变量/表达式: 在模板字面量,使用 '${xxx}'来引用,就是一个占位符
let name = "通天教主";
console.log(`Hello ${name}`); // Hello 通天教主
// 模板函数
// 使用模板字面量为参数的函数
// alert("Hello php.cn");
// alert`Hello php.cn`;
calc`数量:${10}单价:${50}`;
// 模板函数的参数:
// 第一个参数: 模板字面量中的"字符串字面晨"
// 第二个参数: 模板字面量中的"插值"数组
function calc(strings, ...args) {
// string返回数组为什么会有个空格呢?
console.log(strings); // ['数量:', '单价:', ''] 为什么会有个空格呢?
console.log(args); // [10, 50]
console.log(args[0] * args[1]); // 500
}
// * 模板字面量: 可以使用插值表达式的字符串
// * 模板函数: 可以使用"模板字面量"为参数的函数
// * 模板函数,就是在"模板字面量"之前加一个标签/标识符,而这个标签,就是一个函数名
// * 模板函数的参数是有约定的, 不能乱写, 第一个是字面量数组,从第二起才是内部的占位符参数
老师,请教我一下,为什么模板函数的字面量数组返回会有一个空格呢?
相关推荐
© 2020 asciim码
人生就是一场修行