Javascript 如何设置数组项的键?

Javascript 如何设置数组项的键?,javascript,Javascript,我想使用jquery post: var CONST_KEY = 'key'; var CONST_VALUE = 'value'; $.post('/', {CONST_KEY: "'" + CONST_VALUE + "'" }, function(){ //..... }); 但在这种情况下,服务器会获得: CONST_KEY=值 为什么CONST_KEY作为变量名而不是“值”发送?很遗憾,您不能这样做。试试这个 var obj = {}; obj[CONST_KEY] = "'"

我想使用jquery post:

var CONST_KEY = 'key';
var CONST_VALUE = 'value';

$.post('/', {CONST_KEY: "'" + CONST_VALUE + "'" }, function(){
//.....
});
但在这种情况下,服务器会获得:

CONST_KEY=值


为什么CONST_KEY作为变量名而不是“值”发送?

很遗憾,您不能这样做。试试这个

var obj = {};

obj[CONST_KEY] = "'" + CONST_VALUE + "'";
JavaScript将不带引号的键名视为字符串,不会将它们解析为变量查找。但是,如果它们看起来像无效的字符串名称,则可以解析它们,例如,
0x100
解析为
256


最近,您还可以在JavaScript中使用保留字作为裸键,例如
delete
class

不幸的是,您不能这样做。试试这个

var obj = {};

obj[CONST_KEY] = "'" + CONST_VALUE + "'";
JavaScript将不带引号的键名视为字符串,不会将它们解析为变量查找。但是,如果它们看起来像无效的字符串名称,则可以解析它们,例如,
0x100
解析为
256


最近,您还可以在JavaScript中使用保留字作为裸键,例如
delete
class

请注意,您拥有的是一个对象,而不是一个数组。是否有理由将值括在引号中作为POST字符串的一部分?应该没有必要。这是为一些模块,它是为CSRF使用。每个cms都可以有CSRF键和CSRF值请注意,您拥有的是一个对象,而不是一个数组。是否有理由将值括在引号中作为POST字符串的一部分?应该没有必要。这是为一些模块,它是为CSRF使用。每个cms可以有CSRF键和CSRF值