函数参数的默认值
function Person(name = '张三',age=18){
this.name = name
this.age = age
}
let person1 = new Person()
console.log(person1);
function fn(x,y="123"){
let x = 1;
}
fn(1)
与结构赋值结合的使用
function fn({x,y=5}){
console.log(x);
console.log(y);
}
fn({})
fn({x:1})
fn({x:1,y:9})
function getFn([x=3,y=5]){
console.log(x);
console.log(y);
}
getFn([1])
function getFn([x=3,y=5] = [1]){
console.log(x);
console.log(y);
}
getFn()
参数默认值会形成单独的作用域
function f(x,y=x){
console.log(y);
}
f(2)
{
let x = 2
y = x
}
参数展开运算符打包
function add(){
let sum = 0
for (let i of arguments){
console.log(i);
sum += i
}
return sum
}
console.log(add(1,2,3));
function add1(...values){
console.log(values);
let sum = 0
for (let i of values){
console.log(i);
sum += i
}
return sum
}
console.log(add1(1,2,3));
函数内部严格模式的改变
'use strict'
function get(a,b = a){
}
get()
const doSome = (function(){
'use strict'
return function(a = 2){
return 2
}
}())