【发布时间】:2026-01-22 15:40:01
【问题描述】:
我在一本书中找到了这个样本,这是我第一次看到这个符号。
显然它比做一个开关要短一千倍。但它是什么?
当我执行typeof(status) 时,它返回未定义。
我想了解它是什么,以便在我的下一个代码中更频繁地应用它!
function statusformId(id) {
const status = ({
0: 'in the bed',
1: 'face to your computer',
2: 'a little bit silly',
3: 'nowhere'
})[id];
return status || 'Unknow status: ' + id;
}
console.log('statusformId(2) ...', statusformId(2)); // a little bit silly
console.log('statusformId() ...', statusformId()); // Unknow status: undefined
谢谢!
【问题讨论】:
-
这不是一个有效的语法!贴出完整代码...
-
@ManasKhandelwal 它可能在类或对象字面量中,所以还有一个额外的
}。方法有效。 -
你传递给
statusformId的值是什么?如果不是 0 到 3 之间的数字,typeof(status)将是未定义的 -
这是一个对象文字,其中一个键可以立即访问。见这里:jsfiddle.net/qbc1y60o(首先使用 switch 运行数字并不是一个理想的方法)
-
()是 js 中类似于运算符的子表达式,它允许您执行(1+2).toString()之类的操作,并且由于表达式内部是一个对象,因此该对象被解析,因此能够被 @987654329 索引@。如果 id 有效,typeof status应该返回String
标签: javascript ecmascript-6 iteration value-iteration