我们什么时候在javascript中使用点符号?

时间:2016-06-23 11:15:00

标签: javascript

我们在javascript中创建一个对象......

var myObj = {
  name1: 'abc',
  place1: 'xyz',

 name2: 'mno',
 place2: 'uvw',

};

现在当我们尝试访问place1时,我们应该怎么做?

myObj.place1 or myObj[place1]

3 个答案:

答案 0 :(得分:1)

myObj.place1可以直接使用, myObj["place1"]也可以直接使用。

但如果您想使用myObj[place1] ...此处place1被视为来自变量的值,以使此工作正常使用..

var myObj = {
 name1: 'abc',
 place1: 'xyz',
 name2: 'mno',
 place2: 'uvw',
};

var Place1 = "place1";
myObj[Place1]

我们使用“。”当我们想要通过属性

访问js对象的值时使用点符号

答案 1 :(得分:0)

在某些情况下,您无法使用“object-dot-attribute”: 例如:

var obj={
  "hello world": 1,
  "hello-world":2
}

obj.hello world //syntax error
obj.hello-world //this is understood as (obj.hello) - world, a subtraction

因此,获取这些属性的唯一方法是使用

obj["hello world"]
obj["hello-world"]

通常使用点更安全,因为任何IDE都可以检查属性是否已经创建并且可以推断出类型是否正确,所以我的建议是使用object-dot-notation,除非你不能。

另一种无法使用它的情况是,当您不知道属性的名称时,例如您是否将对象用作地图:

var map={};
function addUser(username,userId) {
  map[userId]=username;
}

function getUserName(userId) {
  return map[userId]
}

回到你的例子:

var myObj = {
  name1: 'abc',
  place1: 'xyz',

 name2: 'mno',
 place2: 'uvw',

};

获得该值的推荐方法是:

myObj.place2

但你可以使用

myObj["place2"]

答案 2 :(得分:0)

只要遵循以下规则,您就可以使用Dot符号:

属性必须是有效的JavaScript标识符,即一系列字母数字字符,也包括下划线(“_”)和美元符号(“$”),它们不能以数字开头。例如,object。$ 1有效,而object.1不是。

您也可以使用数字作为密钥。但请确保在对象[1]中使用括号表示法而不是object.1(这将引发错误)。

http://javascriptissexy.com/javascript-objects-in-detail/

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Property_accessors