相关疑难解决方法(0)

JavaScript属性访问:点符号与括号?

除了显而易见的事实,即第一种形式可以使用变量而不仅仅是字符串文字,是否有任何理由使用其中一种,如果是这样,在哪种情况下呢?

在代码中:

// Given:
var foo = {'bar': 'baz'};

// Then
var x = foo['bar'];

// vs. 
var x = foo.bar;
Run Code Online (Sandbox Code Playgroud)

上下文:我编写了一个生成这些表达式的代码生成器,我想知道哪个更好.

javascript syntax

380
推荐指数
10
解决办法
14万
查看次数

点和方括号表示法

我试图理解点和方括号表示法之间的区别。在查看 SO 和其他一些网站上的各种示例时,我遇到了这两个简单的示例:

var obj = { "abc" : "hello" };
var x = "abc";
var y = obj[x];
console.log(y); //output - hello
Run Code Online (Sandbox Code Playgroud)

var user = {
  name: "John Doe",
  age: 30
};
var key = prompt("Enter the property to modify","name or age");
var value = prompt("Enter new value for " + key);
user[key] = value;
alert("New " + key + ": " + user[key]);
Run Code Online (Sandbox Code Playgroud)

obj[x]如果在第三行中我将 替换为,第一个示例将返回 y 为未定义obj.x。为什么不"hello"


但在第二个示例中,表达式user[key]可以简单地替换为,user.key而不会出现任何异常行为(至少对我来说)。现在这让我很困惑,因为我最近了解到,如果我们想通过存储在变量中的名称访问属性,我们可以使用 [ ] …

javascript syntax square-bracket

1
推荐指数
1
解决办法
1509
查看次数

标签 统计

javascript ×2

syntax ×2

square-bracket ×1