Javascript 抓取引用,设置默认值

Javascript 抓取引用,设置默认值,javascript,Javascript,以下代码安全吗?你将如何完成同样的事情 假设我有一个对象x。我想为x中的某个键向数组中添加一些值,如果该键不存在,则将其设置为空数组: var x = {}; var a = x['k'] = x['k'] || []; a.push('moo'); 试试这个 var x = {}, a = 'k' in x ? x['k'] : []; 编辑: var x = {}, a = []; if ( x['k'] ) { a = x['k']; } else { x['k']

以下代码安全吗?你将如何完成同样的事情

假设我有一个对象x。我想为x中的某个键向数组中添加一些值,如果该键不存在,则将其设置为空数组:

var x = {};
var a = x['k'] = x['k'] || [];
a.push('moo');
试试这个

var x = {}, a = 'k' in x ? x['k'] : [];
编辑

var x = {}, a = [];

if ( x['k'] ) {
    a = x['k'];
} else {
    x['k'] = a;
}

我想这不会给我留下x['k']==a?不过,看到“in”操作符很有趣。我不知道这是可用的。这是一个很好的技巧,可以让a具有正确的值。我希望能对我最初提议的风格有所评论。我想正确的分配会让它更安全: