为什么以这种方式交换字符是有效的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';