以下JavaScript语法如何工作? array ['push']('5')

时间:2019-10-09 22:24:31

标签: javascript arrays object

在为CTF反向处理一些混淆的JavaScript代码时,我遇到了以下语法:

/

它在数组的末尾推“ 5”,这看起来很合逻辑,但是我只是不明白为什么这种语法有效,因为我没有设法找到关于它的任何内容(不在Mozilla Developer Network上,而不是W3C website上,而最新的ECMAScript specification太密集了,我无法理解。)

我认为这与数组是对象的特例有关,但是我对JavaScript不够了解,无法弄清楚。

2 个答案:

答案 0 :(得分:3)

在JavaScript中,您可以使用点表示法或方括号来访问对象属性。因此object.propertyname等效于object['propertyname']。通常,当属性名称是动态计算的或不是有效的标识符(例如,包含特殊字符)时,我们使用方括号。但是,没有什么禁止在其他情况下使用它。因此array['push']等效于array.push,因此array['push'](5)等效于array.push(5)

答案 1 :(得分:0)

array['push']('5');转换为:

const array = [];
array.push('5');

由于push始终是数组上的方法,因此可以通过['push']之类的关联来访问它,也可以直接作为属性来访问它。