什么是javascript中的.get相当于什么?

时间:2011-07-28 07:47:59

标签: javascript python

d = {'hello':'abc'}
d.get('hello','default_val');

上面是python。如何在javascript中执行此操作?如果找不到密钥,我希望能够设置默认值。

4 个答案:

答案 0 :(得分:20)

你有(至少)四种选择:

  1. 在许多情况下,您可以使用the curiously-powerful || operator

    x = obj.key || "default";
    

    这意味着:将x设置为obj.key,除非obj.key falsy ,在这种情况下请改用"default"。虚假值为undefinednull0NaN"",当然还有false。因此,如果obj.key可能有效0或其他任何值,您就不会想要使用它。

  2. 对于||不适用的情况,有in运算符:

    x = "key" in obj ? obj.key : "default";
    

    in告诉我们一个对象是否具有给定键的属性。注意,键是一个字符串(属性名称是字符串或符号;如果您使用的是符号,您就知道了)。因此,如果obj.key可能有效0,则您需要使用此而非上述#1。

  3. in会找到一个密钥,如果它位于对象对象的原型链中(例如,如果你检索属性,你会得到它的所有地方) )。如果您只想检查对象本身而不是其原型链,可以使用hasOwnProperty

    x = obj.hasOwnProperty("key") ? obj.key : "default";
    
  4. 专门检查undefined

    x = typeof obj.key !== "undefined" ? obj.key : "default";
    

    如果obj没有该属性,如果它具有该属性,但该属性的值为undefined,那么将使用默认值。

    < / LI>

答案 1 :(得分:4)

Javascript的logical OR operatorshort-circuiting。你可以这样做:

d["hello"] || "default_val";

答案 2 :(得分:0)

怎么样:

var d = {'hello':'abc'};
var helloVar = d.hello ? d.hello : 'default_val';

答案 3 :(得分:0)

使用destructuring assignment

const { hello = 'default_val' } = d