首页 > 试题广场 >

以下输出错误的是

[单选题]

以下输出错误的是

  • let a = {
    age: 1
    }
    let b = a
    a.age = 2
    console.log(b.age) // 2
  • let a = {
    age: 1
    }
    let b = Object.assign({}, a)
    a.age = 2
    console.log(b.age) // 1
  • let a = {
    age: 1
    }
    let b = {...a}
    a.age = 2
    console.log(b.age) // 1
  • let a = {

    age: undefined,

    jobs: function() {},

    name: 'yck'

    }

    let b = JSON.parse(JSON.stringify(a))

    console.log(b) // { age: undefined, jobs: function() {}, name: 'yck'}
发表于 2019-02-25 15:43:50 回复(0)

浅拷贝 Object.assign()和let b={...a}效果一样
关于深浅拷贝,参考掘金文章https://juejin.im/post/5c20509bf265da611b585bec

发表于 2019-02-27 17:01:06 回复(0)
json格式应该键值对都是字符串
发表于 2019-02-25 00:07:09 回复(0)
JSON.stringify() 有以下几个问题:
1.undefined 的值会丢失
2.无法转换function的值
3.date类型会转化为string类型
4.object只有可枚举的属性才能转化


发表于 2020-12-14 17:21:32 回复(0)
assign的确是浅拷贝,但是此题跟浅拷贝根本扯不上关系。a.age发生变化之后,b.age并没有改变,assign是将源对象内的所有属性浅拷贝到目标对象,对于基本数据类型的属性而言本来就是传值拷贝,不论深浅都没有影响,此题的age属性根本就不是对象,何来浅拷贝一说?
我猜此题就是提醒那些似懂非懂的朋友,assign是将对象内的------属性,进行浅拷贝操作。
发表于 2019-03-10 22:04:20 回复(0)
D选项 结果不会显示 age:undefined
发表于 2019-03-01 20:04:31 回复(0)
发表于 2019-02-26 10:02:46 回复(0)

assign不是浅拷贝吗,D是JSON处理undefine、空对象会报错

发表于 2019-02-25 21:02:22 回复(0)