1、默认参数值
(1)、ES6之前:
function sum(a,b,c){
a=a || 0 //表示有参数传进来就是传进来的参数,否则就是默认是0
b=b || 0
c=c || 0
}
sum(1,2)
(2)、ES6改成:
范例1:
function sum(a=0,b=0,c=0){
}
sum(1,2)
范例2:
function f(x = 1, y) {
return [x, y];
}
f(); // [1, undefined]
f(2); // [2, undefined]
2、剩余参数
语法:
function(a, b, ...theArgs) {
// ...theArgs 表示剩余传入的参数集合的数组
}
范例1:
function sum(message,...numbers){
let result=0
for (let i=0; i<numbers.length; i++){
result+=numbers[i]
}
return message+result
}
sum('结果是',1,2,3,4,5) //'结果是15'
范例2:快速将一个伪数组变成真数组方法
let args=Array.prototype.slice.call(arguments) //es6之前写法
let args=Array.from(arguments) //es6新特性
let args= [...arguments] // //es6新特性:剩余参数方法
3、展开运算符
范例1:
var array1=[1,2,3,4,5,6]
var [a,b,c,...array2]=array1 //表示a=1,b=2,c=3,剩余array1参数组成数组array2
console.log(array2) //打印出[4,5,6]
范例2:
var array1=[1,2,3,4,5,6]
var [,,,...array2]=array1
console.log(array2) //打印出[4,5,6]
范例3:
var array1=[1,2,3,4,5,6]
var array2=[0,...array1,7] //表示在array1基础上给数组array2新增了0和7
console.log(array2) //打印出[0,1,2,3,4,5,6,7]
4、解构赋值
范例1:
var a=1;
var b=2;
[a,b]=[b,a] //a 和 b 的值进行互换
范例2:
var [a, b, ...rest] = [10, 20, 30, 40, 50]
console.log(res) //打印出[30,40,50]
范例3:
var jack={
name:'jack',
age:'18',
gender:'male'
}
var {name,age,gender}=jack
console.log(name) //打印出name:''jack
范例4:
var [a=5,b=7]=[] // 先将右边进行解构,如果没有传参就采用左边默认的值
console.log(a,b) //打印出5,7
var [a=5,b=7]=[1] // 先将右边进行解构,只传一个,另一个用默认值
console.log(a,b) //打印出1,7
var [a=5,b=7]=[1,2] // 先将右边进行解构,a和b两个值都用解构的值
console.log(a,b) //打印出1,2
范例5:
var f=function(){
return [1,2]
}
var [a,b]=f() //解构函数返回值是1和2
console.log(a,b) //打印出1,2
范例6:
let {a = 10, b = 5} = {a: 3};
console.log(a,b) //打印出1,5
范例7:对象浅拷贝
let objA={
name:{
x:'a'
}
}
let objB={...objA}
console.log(objB)
范例8:
let objA={
p1:1,
p2:2
}
let objC={
p1:1111,
p3:3
}
let objB={...objA,...objC} //如果有同名的key,后面对象key值会覆盖前面的
console.log(objB) //打印出{p1: 1111, p2: 2, p3: 3}
范例9:
var x=1
var y=2
//var obj={x:x,y;y} ,key简写成下面方式,只要key和value名字相同
var obj={x,y]
拓展1:
var obj2={
//sayHi:function(){} 可以写成下面这种方式
sayHi(name){}
}
拓展2:
var key='x'
var value='y'
//实现:var obj={"x":"y"}
var obj={
"key":value //错的写法,无法实现
}
obj[key]=value //正确写法,方法1
var obj={
[key]:value //正确写法,方法2
}
网友评论