字符串的解构赋值:
字符串解构赋值原理,字符串–>字符数组–>类数组解构
const [ a, b, c, d, e, f, g] = "Hello"
console. log ( a) ;
console. log ( b) ;
console. log ( c) ;
console. log ( d) ;
console. log ( e) ;
console. log ( f) ;
类似数组的对象都有一个length属性,因此这个属性也可以被解构赋值
let { length : len} = "sssssd"
console. log ( len) ;
数值和布尔值的解构赋值:
解构赋值时,如果等号右边是数值和布尔值,会先将他们转成对象。
let { toString : s} = 123 ;
console. log ( s=== Number . prototype. toString) ;
let { toString : s1} = false ;
console. log ( s1=== Boolean . prototype. toString) ;
数值和布尔值的包装对象都有toString属性,因此s能取到值 解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转换为对象.由于undefined和null无法转换为对象,所以对他们进行解构赋值时都会报错.
let { prop : x} = undefined
let { prop : y} = null
函数参数的解构赋值:
函数的参数也可以使用解构赋值
function add ( [ a, b] ) {
return a+ b;
}
console. log ( add ( [ 1 , 3 ] ) ) ;
function move ( { x= 0 , y= 0 } = { } ) {
return [ x, y]
}
move ( )
function move ( { x= 0 , y= 0 } ) {
return [ x, y]
}
move ( )
function move ( { x= 0 , y= 0 } ) {
return [ x, y]
}
move ( )