// 1. 函数参数的默认值
// 原方式
function add(a, b) {
b = b || 1;
return a + b;
}
//只传一个参数 函数里面设置了 b为 空的情况 值为1
console.log(add(10)); // 11
// 新写法 , 在参数中给定一个默认值
function add2(a, b = 1) {
return a + b;
}
console.log(add2(20)); // 21
console.log(add2(10, 11))//21
//不定参数
function fun(...values) {
console.log(values);
}
fun(1, 2); // [1,2]
fun(1, 2, 3, 4) // [1,2,3,4]
// 箭头函数
// 原写法
var print = function (obj) {
console.log(obj);
}
print("我是原方式");
// 我是箭头函数书写方式
// 只传一个参数的写法
var print2 = obj2 => console.log(obj2);
print2("我新方式是只传一个参数的箭头函数...");
// 多个参数的写法 原方式
var sum = function (a, b) {
return a + b;
}
console.log(sum(1, 2)); // 3
// 我是新式玩法
var sum2 = (a, b) => a + b;
console.log(sum2(1, 3));//4
// 带有方法体的书写方式
var sum3 = (a, b) => {
c = a + b;
return a + c;
}
console.log(sum3(1, 2));//4
// 对象解构
const person = {
name: "zhangsan",
age: 20,
language: ['java', 'js', 'css']
}
// 原写法
function per(person) {
console.log("我是原写法 : " + person.name);
}
per(person);
// 新写法
var per2 = (obj) => { console.log("我是新写法 : " + person.name) }
var per3 = (obj) => console.log("我是新写法 : " + person.name)
per2(person);
per3(person);
// 箭头函数 + 解构表达式写法
// 表示解构对象里面变量名是name 的属性值
var per4 = ({ name }) => console.log("我是箭头函数+解构表达式 : " + name)
per4(person);