如果为零,Javascript分配变量?
Posted
技术标签:
【中文标题】如果为零,Javascript分配变量?【英文标题】:Javascript assign variable if nil? 【发布时间】:2011-12-15 13:13:10 【问题描述】:如果计算结果为 false,javascript 中是否有一些简写来分配变量?
在 ruby 中我可以这样做:
foo |= "bar"
如果 foo 的计算结果为 false,则将“bar”分配给 foo 所以是这样的:(使用 |= 运算符)
var cars_by_brand_and_color = ;
for (var car in parking_lot)
// add a brand if it doesn't exist yet;
// cars_by_brand_and_color['chevrolet'] = ;
cars_by_brand_and_color[car['brand']] |= ;
// and add that color to the brand if it doesn't exist yet;
// cars_by_brand_and_color['chevrolet']['grey'] |= ;
cars_by_brand_and_color[car['brand']][car['color']] |= ;
// now let's add that car;
// cars_by_brand_and_color['chevrolet']['grey']['BDB-565'] = 'Mr. Smith';
cars_by_brand_and_color[car['brand']][car['color']][car['lisence_plate']] = car['owner']
;
【问题讨论】:
developer.mozilla.org/en/JavaScript/Reference/Operators 【参考方案1】:没错,JS语法是
var toAssign = mayBeNull || ;
【讨论】:
我知道。但是没有速记吗?但现在我必须输入两次 varname。如果这些很长,则不利于可读性。 (见示例) 不,很遗憾,没有对应于||
的简写赋值运算符,在执行此操作时会利用其短路评估属性。
或者有没有办法分配这个:cars_by_brand_and_color[car['brand']][car['color']][car['lisence_plate']] = car['owner'];直接,如果它们还不存在,则强制创建所有“关联层”?否则我只需要处理它并开始复制粘贴......不是那么干燥(在行级别上......)
不,至少我想不出任何方法可以避免引用“父”对象。以上是关于如果为零,Javascript分配变量?的主要内容,如果未能解决你的问题,请参考以下文章