Javascript 为什么可以使用数组表示法访问对象?当属性名在变量中时,为什么需要数组表示法?

Javascript 为什么可以使用数组表示法访问对象?当属性名在变量中时,为什么需要数组表示法?,javascript,Javascript,以以下为例: var obj = {}; obj.test1 = 'string'; // string obj['test2'] = 'string'; // string obj['test3'] = ['string']; // array var key = 'test4'; //obj.key = 'string' // not working var key = 'test5'; obj[key] = 'string'; // working console.log(obj)

以以下为例:

var obj = {};

obj.test1 = 'string'; // string
obj['test2'] = 'string'; // string
obj['test3'] = ['string']; // array

var key = 'test4';
//obj.key = 'string' // not working

var key = 'test5';
obj[key] = 'string'; // working

console.log(obj);

为什么可以使用数组表示法(方括号)访问对象属性:
obj['test2']='string'

为什么
test4
中使用点表示法的示例失败,而在
test5
中使用数组表示法工作

为什么可以使用数组表示法(方括号)访问对象属性:obj['test2']='string'

因为JavaScript就是这样定义的。这不是“数组表示法”;这是“方括号符号”

为什么test4中使用点表示法的示例失败,而在test5中使用数组表示法工作

obj.key
访问
obj
上名为“key”的属性。您的对象没有名为“key”的属性,因此这将生成
未定义的

obj[key]
将访问名为存储在变量
key
中的值的属性
obj['test4']
将访问名为“test4”的属性,正如
obj['te'+'st4']
一样,依此类推

方括号表示法允许基于字符串值访问属性。点表示法允许按代码中实际写入的名称访问属性

为什么可以使用数组表示法(方括号)访问对象属性:obj['test2']='string'

因为JavaScript就是这样定义的。这不是“数组表示法”;这是“方括号符号”

为什么test4中使用点表示法的示例失败,而在test5中使用数组表示法工作

obj.key
访问
obj
上名为“key”的属性。您的对象没有名为“key”的属性,因此这将生成
未定义的

obj[key]
将访问名为存储在变量
key
中的值的属性
obj['test4']
将访问名为“test4”的属性,正如
obj['te'+'st4']
一样,依此类推

方括号表示法允许基于字符串值访问属性。点表示法允许按代码中实际写入的名称访问属性

为什么可以使用数组表示法(方括号)访问对象属性:obj['test2']='string'

因为JavaScript就是这样定义的。这不是“数组表示法”;这是“方括号符号”

为什么test4中使用点表示法的示例失败,而在test5中使用数组表示法工作

obj.key
访问
obj
上名为“key”的属性。您的对象没有名为“key”的属性,因此这将生成
未定义的

obj[key]
将访问名为存储在变量
key
中的值的属性
obj['test4']
将访问名为“test4”的属性,正如
obj['te'+'st4']
一样,依此类推

方括号表示法允许基于字符串值访问属性。点表示法允许按代码中实际写入的名称访问属性

为什么可以使用数组表示法(方括号)访问对象属性:obj['test2']='string'

因为JavaScript就是这样定义的。这不是“数组表示法”;这是“方括号符号”

为什么test4中使用点表示法的示例失败,而在test5中使用数组表示法工作

obj.key
访问
obj
上名为“key”的属性。您的对象没有名为“key”的属性,因此这将生成
未定义的

obj[key]
将访问名为存储在变量
key
中的值的属性
obj['test4']
将访问名为“test4”的属性,正如
obj['te'+'st4']
一样,依此类推

方括号表示法允许基于字符串值访问属性。点表示法允许按代码中实际写入的名称访问属性。

因为通过括号表示法访问属性不称为“数组表示法”。因为通过括号表示法访问属性不称为“数组表示法”。因为通过括号表示法访问属性不称为“数组表示法”。因为通过括号表示法访问属性不称为“数组表示法”。