当前位置: 首页 > 面试题库 >

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

郑锋
2023-03-14
问题内容

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

在代码中:

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

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

// vs. 
var x = foo.bar;

上下文:我已经编写了一个代码生成器来生成这些表达式,我想知道哪种更好。


问题答案:

方括号符号允许使用点符号不能使用的字符:

var foo = myForm.foo[]; // incorrect syntax
var foo = myForm["foo[]"]; // correct syntax

包括非ASCII(UTF-8)字符,如myForm["ダ"]

其次,方括号表示法在处理以可预测的方式变化的属性名称时非常有用:

for (var i = 0; i < 10; i++) {
  someFunction(myForm["myControlNumber" + i]);
}

Roundup:

  • 点符号的书写速度更快,阅读更清晰。
  • 方括号表示法允许访问包含特殊字符的属性以及使用变量选择属性

不能与点符号一起使用的字符的另一个示例是 本身包含点的属性名称

例如,一个json响应可能包含一个名为的属性bar.Baz

var foo = myResponse.bar.Baz; // incorrect syntax
var foo = myResponse["bar.Baz"]; // correct syntax


 类似资料:
  • 在JSP页面中要经常访问Map、List、数组等类型的对象,以及EL内置对象、域对象的属性等。通过方括号运算符和点运算符可以很容易实现这个功能。 下面是方括号运算符和点运算符使用规则: l 在访问EL内置对象属性时,可以使用方括号运算符或点运算符。例如,${param.name}和${param["name"]}都可以访问name请求参数。 2  在访问数组或List对象中的元素时,只能使用方括号

  • 问题内容: 我正在使用YAML配置文件。这是在Python中加载我的配置的代码: 这段代码实际上创建了一个字典。现在的问题是,为了访问值,我需要使用大量的括号。 YAML: 蟒蛇: 我更喜欢这样的东西(点符号): 因此,我的想法是利用PyStache render()接口。 那将是一个“好的”解决方案吗?如果没有,什么是更好的选择? 附加问题[已解决] 我决定使用IljaEverilä的解决方案。

  • 问题内容: 谁能解释下面为什么在javascript中分配键的原因/方式? 返回: 问题答案: 这是新的ES2015(正式名称为ES6的EcmaScript规范)计算的属性名称语法。这是您从ES3/ 5知道的任务的简写: 是用于以下方面的语法糖:

  • 本文向大家介绍浅谈JavaScript 数据属性和访问器属性,包括了浅谈JavaScript 数据属性和访问器属性的使用技巧和注意事项,需要的朋友参考一下 在JavaScript中对象被定义为"无序属性的集合,其属性可以包含基本值、对象或函数。"通俗点讲,我们可以把对象理解为一组一组的名值对,其中值可以是数据或函数。 创建自定义对象通常有两种方法,第一种就是创建一个Object的实例,然后再为其添

  • 问题内容: 我只需要返回字符串中方括号内包含的文本。我有以下正则表达式,但这也会返回方括号: 字符串只能包含一组方括号,例如: 我希望匹配项包含“一些重要信息”,而不是当前包含的“ [一些重要信息]”。 问题答案: 使用分组。我添加了一个使之匹配的“ ungreedy”,因为这可能就是您想要的。

  • 问题内容: 我有一个PHP对象,其属性中带有美元($)符号。 如何访问此属性的内容? 范例: 问题答案: 具有可变变量: echo $object->$myVar; 带花括号: