什么'这相当于javascript中的.get吗
What's the equivalent of .get in javascript?
d = {'hello':'abc'}
d.get('hello','default_val');
上面是蟒蛇。如何在javascript中做到这一点?如果找不到键,我希望能够设置默认值。
您(至少(有四个/五个选项:
-
在现代环境中,您可能会使用零合并运算符(
??
(:x = obj.key ?? "default";
如果
obj.key
导致undefined
或null
,则使用"default"
;如果obj.key
导致任何其他值,则使用该值(包括各种伪值,如""
(。在没有
??
的过时环境中,您可以使用功能强大得出奇的||
运算符:x = obj.key || "default";
如果
obj.key
导致任何错误值(包括""
(,则将使用"default"
;否则,它将使用该值。在可能的情况下,您通常希望使用??
而不是||
,因为它更准确地测试";缺少";价值 -
这已经过时了,
??
处理这种情况对于||
不适用的情况,有in
运算符:x = "key" in obj ? obj.key : "default";
in
告诉我们一个对象是否具有给定键的属性。请注意,键是一个字符串(属性名称是字符串或Symbol;如果您使用的是Symbol,您就会知道(。因此,如果obj.key
可能是有效的0
,那么您应该使用它,而不是上面的#1 -
in
(和obj.key
(将在对象或对象的原型链中找到一个密钥。如果你只想检查对象本身,而不是它的原型链,在现代环境中,你可以使用Object.hasOwn
:x = Object.hasOwn(obj, "key") ? obj.key : "default";
在没有
hasOwn
的过时环境中,可以使用polyfill,也可以使用hasOwnProperty
(但要注意,对象可能有自己的hasOwnProperty
版本,可能无法说出真相(:x = obj.hasOwnProperty("key") ? obj.key : "default";
-
如果您不想排除
null
,您可以专门检查undefined
:x = typeof obj.key !== "undefined" ? obj.key : "default";
如果
obj
没有该属性,则使用默认值;如果它有该属性,但该属性的值为undefined
,则使用。
Javascript的逻辑OR运算符短路。你可以做:
d["hello"] || "default_val";
使用析构函数赋值:
const { hello = 'default_val' } = d
关于:
var d = {'hello':'abc'};
var helloVar = d.hello ? d.hello : 'default_val';
- javascript中的数组出错
- JavaScript中的函数和对象之间没有区别吗?
- Javascript中的空白是什么
- 为什么要使用0>javascript中的0
- 如何制作简单的php'在Javascript中的foreach等价物
- javascript中的布尔条件
- 我可以'我似乎不知道如何修复javascript中的两个lint.有人能帮我理解吗
- 验证Javascript中的Textarea
- 可以't使用Appcelerator将JSON文件解析为JavaScript中的TableView
- 是“;x==a||b”;以及“;x==a||x==b”;JavaScript中的等效语句
- 仅在IE中,javascript中的时区名称不正确
- JavaScript 中的嵌套函数和 “this” 关键字
- javascript中的命名空间,IDE中支持代码完成/内容辅助's
- JavaScript 中的高阶函数
- Javascript中的备选注释方法
- 如何使用JavaScript中的用户输入创建序列/序列
- 无法理解JavaScript中的静态方法
- 如何附加'#'到Javascript中的值
- javascript 中的全局函数
- 用javascript中的param执行动态函数