JavaScript:将表达式转换为字符串

标签 javascript string casting type-conversion expression

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

我尝试在以下“assert”函数中的“condition”参数上使用 .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);

实际错误消息:断言失败:false

预期错误消息:断言失败:配置中的“用户名”

最佳答案

没有办法这样做;甚至在调用函数之前都会计算表达式,并且仅将其结果值传递给您的函数。您可以首先将表达式作为字符串提供,并使用 eval(condition) 对其求值,但请注意 eval 不受欢迎,因为它很容易意外以这种方式引入安全漏洞。

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

关于JavaScript:将表达式转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56996575/

相关文章:

javascript - 使用没有 jquery 或 ajax 的普通 javascript 将 php 值传递给模态

javascript - 在 Vue 应用程序中导入脚本后 undefined variable

Javascript 闭包和自动执行匿名函数

javascript - 正则表达式以大写和小写形式输出不同的单词

Scala 2.10 反射 : Creating an Array from a type

c# - 在三元运算符 C# 中转换为 Nullable 创建新变量?

swift - 如何将对象转换为自己的类?

javascript - 尴尬的线条环绕图像

c - 链表:读取C中的字符串

c# - 如何解决我的 StringBuilder 问题?