Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么以这种方式交换字符是有效的JavaScript?_Javascript_Object_Character_Swap - Fatal编程技术网

为什么以这种方式交换字符是有效的JavaScript?

为什么以这种方式交换字符是有效的JavaScript?,javascript,object,character,swap,Javascript,Object,Character,Swap,我对这段代码的工作原理感到困惑。我假设A必须是'A',才能交换这两个字符,但它是有效的。还有,这是做什么的名字?从表面上看,我认为这是在破坏结构,但我不确定 var translations = { A : 'U' }; console.log(translations['A']); //returns U 我想你应该这样写: var translations = { 'A' : 'U' }; console.log(translations['A']); //also returns

我对这段代码的工作原理感到困惑。我假设
A
必须是
'A'
,才能交换这两个字符,但它是有效的。还有,这是做什么的名字?从表面上看,我认为这是在破坏结构,但我不确定

var translations = {
  A : 'U'
};
console.log(translations['A']); //returns U
我想你应该这样写:

var translations = {
  'A' : 'U'
};
console.log(translations['A']); //also returns U

对象或属性键可以是标识符名称(即标识符+保留字)、字符串文字或数字文字。在访问它的过程中,您是否将其称为
A
'A'
,其实并不重要

财产名称 属性名称必须是字符串。这意味着非字符串对象 不能用作对象中的键。任何非字符串对象,包括 数字,通过toString方法键入到字符串中

这将输出“值”,因为1的类型被转换为“1”

这也会输出“值”,因为foo和bar都转换为 相同的字符串。在SpiderMonkey JavaScript引擎中,此字符串 是“['object']”

另外,您所做的基本上是创建一个。我没有看到你在任何地方破坏它。

创建对象 然而,文字或初始值设定符号的优点是 您可以快速创建具有内部属性的对象 花括号。您只需为分隔的键:值对列表添加注释 用逗号。下面的代码创建了一个具有三个属性的对象 关键是“foo”、“age”和“baz”。这些键的值是 一个字符串“bar”、一个数字42和另一个对象

访问属性 创建对象后,可能需要读取或更改 他们。对象属性可以使用点表示法或 括号符号。有关详细信息,请参阅

可以将对象视为关联数组(也称为贴图, 字典、哈希、查找表)。此数组中的键是名称 对象的属性。当谈到一个物体的 属性来区分属性和方法。 然而,属性/方法的区别只不过是 惯例。例如,方法只是一个可以调用的属性 示例,如果它的值是对函数实例的引用


对象或属性键可以是标识符名称(即标识符+保留字)、字符串文字或数字文字。在访问它的过程中,您是否将其称为
A
'A'
,其实并不重要。谢谢,这有助于解释这么多!我仍然很难理解第二个具有独特道具的例子。有什么资源可以让我更好地理解它吗?@Ryan Wendell:
var object = {};
object['1'] = 'value';
console.log(object[1]);
var foo = {unique_prop: 1}, bar = {unique_prop: 2}, object = {};
object[foo] = 'value';
console.log(object[bar]);
var object = {
  foo: 'bar',
  age: 42,
  baz: {myProp: 12}
}
object.foo; // "bar"
object['age']; // 42

object.foo = 'baz';