let f = (a,b)=>a+b;console.log(f(1,2)); // 3console.log(1); // NaN : not a number// 1.参数不足:默认参数f = (a,b=0)=>a+b; // 默认形参 b = 0console.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-cconsole.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码
人生就是一场修行