一.自执行方法
<script>
function fun(){
console.log('Hello');
}
fun();
// 自执行函数
// 注意:要以分号结束,否则可能会影响后面的语句
(function fun2(){
console.log('你好');
})();
// +号是自执行函数的简写
+function fun3(){
console.log('你好,中国');
}();
(()=>{
console.log('你好,迪丽热巴');
})();
</script>
二.rest参数
<script>
// 方法的形参面前添加...就是rest参数
// ...args 就是reset参数,用于接受剩余的实参 注意:通常rest参数放在最后面
// rest参数,解决了函数中arguments对象不是数组类型的缺陷
function fun1(a,b,c,...args){
console.log(a,b,c);
// arguments 是一个类数组对象,结构长得像数组,其实是一个object对象
console.log(arguments);
// rest参数 是一个数组对象,既然是数组,就可以直接使用数组的方法。
console.log(args);
let arr=args.map(r=>r*2)
console.log(arr);
// console.log(arguments)
}
fun1(100,200,300)
fun1(100)
fun1(10,20,30,40,50,60,70,80)
console.log('------------------------------------------');
// 在定义函数时,可以给函数设置默认值
function fun2(a,b=200,c=300){
console.log(a,b,c);
}
fun2(1,2,3)
fun2(1,2)
fun2(1)
fun2()
// 调用方法时,1,2,3,传给a,b,c.其他的值传给rest参数
fun1(1,2,3,4,5,6,7,8,9,10)
console.log('------------------------------------------------------------------');
</script>
三.展开运算符
script>
let arr1 = [11,22,33]
let arr2 = [44,55,66]
let arr3 = arr1.concat(arr2)
console.log(arr3);
// ...在这里就是展开运算符,在这里,展开运算符用于展开数组中的所有成员。
let arr4 = [...arr1,...arr2]
console.log(arr4);
console.log('---------------------------------');
let obj1 = {
a:100,
b:200
}
let obj2 = {
c:300,
d:400,
a:500
}
// ...在这里,用于将对象的所有属性展开,并返回一个全新的对象
let obj3={...obj1,...obj2}
console.log(obj3);
</script>
四.解构赋值
<script>
let no=1001
let name='周杰伦'
let age=30
let sex='男'
// 定义对象
let stu1={
// 属性值:属性名
// 这里的属性值是上面定义的变量保存的值
no:no,
name:name,
age:age,
sex:sex
}
console.log(stu1);
console.log('---------------------------');
// 对象的属性名和属性值标识相同时,可以省略属性值
let stu2={
// no,是no:no的简写
no,
name,
age,
sex
}
console.log(stu2);
console.log('--------------------------');
let stu3={
username:'周杰伦',
userage:30,
usersex:'男',
car:{
carName:'奔驰',
carPrice:'100w'
}
}
// 过去我们这样写
// let username=stu3.username
// let userage=stu3.userage
let usersex=stu3.usersex
// 现在我们这样写(解构赋值)
// usersex;usersex2 表示在解构的时候对变量名进行重命名
let{username,userage,usersex:usersex2}=stu3
console.log(username,userage,usersex,usersex2);
console.log('----------------');
// let{car}=stu3
// let{carName,carPrice}=car
let{car:{carName,carPrice}}=stu3 //这一行代码,最终会编译成下面的两行代码
// let caeName = stu3.car.carName
// let carPrice=stu3.car.carPrice
console.log(carName,carPrice);
let arr =[11,22,33,44,55]
// 解构数组中的元素,采用[]
let [a,b]=arr
console.log(a,b);
</script>