【问题标题】:Explicit type casting in jsjs中的显式类型转换
【发布时间】:2016-11-23 13:02:05
【问题描述】:

是否有一种通用的方法可以将变量显式转换为特定类型? 例如:

var b = true;
var str = "";
var n = 5;
cast(someVariable, typeof b);   //someVariable become a boolean
cast(someVariable, typeof str); //someVariable become a string
cast(someVariable, typeof n);   //someVariable become an integer

cast 应该是那种神奇的铸造方法。

很明显,我可以在switch 中枚举所有可能的类型。但是有没有一种[美丽的]原生方式来做到这一点?

【问题讨论】:

  • 你不能用Boolean( someVariable ), Number( someVariable );之类的东西吗?
  • @MohitBhardwaj 我可以,但问题是我并不总是知道第二个参数的类型。

标签: javascript types casting


【解决方案1】:

您可以使用映射来做到这一点:

var castMap  = {
    "boolean" : Boolean
};
var b = true;
var someVariable = "true";
castMap[typeof(b)](someVariable)

【讨论】:

  • 是的,这看起来比 switch 运算符更简单。谢谢
  • 这不是一个好的答案。 Number(val) 不会像 c 中那样转换类型。
猜你喜欢
  • 2010-09-15
  • 1970-01-01
  • 1970-01-01
  • 2016-06-03
  • 2015-11-12
  • 2011-07-01
  • 1970-01-01
  • 2017-09-10
  • 1970-01-01
相关资源
最近更新 更多