函数解构赋值
基础语法
let arr1 = [ 1 , 2 ] ;
function show ( arr ) {
console. log ( arr[ 0 ] , arr[ 1 ] ) ;
}
show ( arr1) ;
let arr1 = [ 1 , 2 ] ;
function show ( [ x, y] ) {
console. log ( x, y) ;
}
show ( arr1) ;
函数参数 默认值
var a = { a1 : 10 } ;
function move ( a ) {
console. log ( a. a1) ;
}
move ( a) ;
函数解构扩展
function move ( { x = 0 , y = 0 } = { } ) {
console. log ( x, y) ;
}
move ( { x : 3 , y : 10 } ) ;
move ( { x : 3 } ) ;
move ( { } ) ;
move ( ) ;
function move ( { x, y } = { x : 0 , y : 0 } ) {
console. log ( x, y) ;
}
move ( { x : 3 , y : 10 } ) ;
move ( { x : 3 } ) ;
move ( { } ) ;
move ( ) ;
function show ( x, y = "你好" ) {
alert ( x + y) ;
}
show ( '小明' ) ;
show ( '小明' , "你好肥" ) ;
show ( '小明' , "" ) ;
show ( '小明' , ) ;
show ( '小明' , null ) ;
function foo ( { x, y = 5 } ) {
console. log ( x, y) ;
}
foo ( { } )
foo ( { x : 1 } )
foo ( { x : 1 , y : 2 } )
foo ( )
function foo ( x = 1 , y ) { console. log ( x, y) ; }
foo ( null , 1 ) ;
console. log ( ( function ( a, b, c = 1 ) { } ) . length) ;
console. log ( ( function ( a, b = 1 , c ) { } ) . length) ;
console. log ( ( function ( a = 1 , b, c ) { } ) . length) ;
局限性
不报错
function show1 ( x, x, y ) {
console. log ( "老大 身材好" ) ;
}
show1 ( 1 , 1 , 2 ) ;
function show ( x, x, y = 5 ) {
console. log ( "老大 身材好" ) ;
}
show ( 1 , 1 , 2 ) ;
作用域
var x = 5 ;
function f ( x, y = x ) { console. log ( y) ; }
f ( 10 ) ;
function add ( ... values) {
let sum = 0 ;
for ( var val of values) { sum += val; }
console. log ( sum) ;
}
add ( 1 , 2 , 3 )