Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/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
String 可以在JavaScript中记录变量名吗?_String_Variables_Console.log - Fatal编程技术网

String 可以在JavaScript中记录变量名吗?

String 可以在JavaScript中记录变量名吗?,string,variables,console.log,String,Variables,Console.log,是否可以在JavaScript中记录变量名(而不是值) var max_value = 4; console.log(max_value); // should log "max_value" as a string 更新:我需要一个测试函数,它应该能够将任何变量名(作为参数传递)记录为字符串,而不仅仅是这一个变量 有一个解决方案可以帮助您。我从中获取了这个函数,它能够获取函数参数的名称: var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))

是否可以在JavaScript中记录变量名(而不是值)

var max_value = 4;
console.log(max_value); // should log "max_value" as a string

更新:我需要一个测试函数,它应该能够将任何变量名(作为参数传递)记录为字符串,而不仅仅是这一个变量

有一个解决方案可以帮助您。我从中获取了这个函数,它能够获取函数参数的名称:

var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
var ARGUMENT_NAMES = /([^\s,]+)/g;
function getParamNames(func) {
  var fnStr = func.toString().replace(STRIP_COMMENTS, '');
  var result = fnStr.slice(fnStr.indexOf('(')+1, fnStr.indexOf(')')).match(ARGUMENT_NAMES);
  if(result === null)
     result = [];
  return result;
}
然后,现在需要做的就是将变量名用作匿名函数的参数,并将所有函数作为GetParamName的参数传递:

variablesNames = getParamNames(function (max_value, min_value) {});
这将返回如下数组:

result => ["max_value", "min_value"];
function __ (func) {
   // code here  ...
}
__(function( max_value ){});
让我们实际一点,首先将getParamNames函数的名称更改为简单而小的名称,如下所示:

result => ["max_value", "min_value"];
function __ (func) {
   // code here  ...
}
__(function( max_value ){});
第二件事,不是返回数组,而是返回数组的第一个元素,更改如下:

return result;
为此:

return result.shift();
现在,您可以像下面这样获得变量的名称:

result => ["max_value", "min_value"];
function __ (func) {
   // code here  ...
}
__(function( max_value ){});

console.log(“最大值”)?为什么需要这个?你到底想要实现什么?