如何在 Javascript 中将变量转换为另一个变量的类型

Ofe*_*ila 4 javascript types type-conversion

我希望能够将一个变量转换为另一个的特定类型。举个例子:

function convertToType(typevar, var) {
    return (type typevar)var; // I know this doesn't work
}
Run Code Online (Sandbox Code Playgroud)

所以 convertToType(1, "15") 返回 15, convertToType("1", 15) 返回 "15", convertToType(false, "True") 返回 true,等等。

重申一下,我希望能够将变量动态转换为其他变量的类型。

这可能吗?

JaK*_*KXz 6

更新:这是一个更完整的示例,带有测试(需要 Node 6+ 或一些转译到 ES5):https://github.com/JaKXz/type-convert

您可以使用typeof运算符来获得正确的“铸造”功能:

function convertToTypeOf(typedVar, input) {
  return {
    'string': String.bind(null, input),
    'number': Number.bind(null, input)
    //etc
  }[typeof typedVar]();
}
Run Code Online (Sandbox Code Playgroud)

在这里尝试一下:http://jsbin.com/kasomufucu/edit?js, console

我还建议为您的项目研究TypeScript。


mar*_*ouf 5

function convertToType (t, e) {
    return (t.constructor) (e);
}
Run Code Online (Sandbox Code Playgroud)

复制演示

注意当我们想将 15 转换为数字时的第一次调用,我们在第一个参数后附加了一个点 (.)