解构赋值

73 阅读1分钟
  • 解构赋值:解析数据源,然后按照数据模型进行取值,再赋值给变量,属于声明变量的高级写法,解构赋值只针对数组与对象

  • 格式:变量修饰符 数据模型=数据源 (1)解构:按照数据模型取出数据源中的数据
    (2)赋值:然后赋值给模型变量

var obj={a:1,b:2,c:3}
var {a,b,c}=obj
//隐式操作: a=obj.a b=obj.b c=obj.c
console.log(a,b,c)

image.png

let arr=[{age:20},{name1:"karen"}]
let [{age,name1="jack"}]=arr
//隐式操作:var name1=arr[0].name1,这里的arr取0没有name1
console.log(age,name1)

image.png

  • 如果原来有值,数据源的值就会覆盖原来的值
var obj={a:1}
var {a=10}=obj
//a原来有值,数据源的值就会覆盖原来的值
console.log(a,b,c)

image.png

  • 如果变量原来没有值就会undefined,有值就会是原来的值
var obj={a:undefined}
var {a}=obj
console.log(a)
//如果变量原来没有值就会undefined,有值就会是原来的值,
var {a=12}=obj
//隐式操作:var a=12;a=obj.a
console.log(a)

image.png