【问题标题】:JavaScript: Converting expression to stringJavaScript:将表达式转换为字符串
【发布时间】:2019-07-11 20:07:42
【问题描述】:

我正在尝试找到一种方法将表达式(例如条件语句)转换为字符串,而无需处理表达式。

我尝试在以下“断言”函数中的“条件”参数上使用 .toString() 方法。

const config = {
  usernme: 'username1',
  password: 'password1'
}

function assert(condition, message) {
  if (!condition) {
    message = message || `Assertion failed: ${condition.toString()}`;
    if (typeof Error !== "undefined") {
      throw new Error(message);
    }
    throw message; // Fallback
  }
}

assert('username' in config);

实际错误信息:Assertion failed: false

预期的错误消息:Assertion failed: 'username' in config

【问题讨论】:

    标签: javascript string casting type-conversion expression


    【解决方案1】:

    没有办法那样做;甚至在调用您的函数之前对该表达式进行评估,并且仅将其结果值传递给您的函数。您可以将表达式作为字符串开头,然后使用 eval(condition) 对其进行评估,但请注意 eval 不受欢迎,因为这样很容易意外引入安全漏洞。

    console.assert() 处理这个问题的方式是表达式是一个参数,然后自定义标签(作为字符串)是第二个参数,因此您可以自己指定标签,包括复制/粘贴表达式并将它在字符串的引号中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-12
      • 2012-09-14
      • 1970-01-01
      • 1970-01-01
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      相关资源
      最近更新 更多