我有一个需求,需要在JavaScript中使用??
C#运算符,但我不知道该怎么做。
在C#中可以这样写:
int i?=null;
int j=i ?? 10;//j is now 10
现在我已经使用JavaScript设置了这个:
var options={
filters:{
firstName:'abc'
}
};
var filter=options.filters[0]||'';//should get 'abc' here, it doesn't happen
var filter2=options.filters[1]||'';//should get empty string here, because there is only one filter
我应该如何正确实现呢?
谢谢。
编辑: 我发现问题的一半了:我不能使用“索引”符号来访问对象(my_object[0]
)。有没有一种方法可以绕过它?(我事先不知道过滤器属性的名称,也不想迭代它们)。
0
、false
、空字符串)都是潜在的有效输入,我会像这样进行更改:var j = (i === null) ? 10 : i;
这将仅替换null
,而不会替换任何可以被评估为假的内容。 - DBSi
未定义,这将会抛出一个错误。对我来说似乎毫无用处.. (?) - phil294var j = (i != null ? i : 10);
这段代码是有效的,因为undefined
和null
在比较中相等,所以i != null
对于null
和undefined
都返回false
。最终将i
赋值给j
,如果i
是null
或undefined
,则将j
赋值为10
。 - ToolmakerSteve