是否可以在JavaScript中检查可能的转换?

时间:2014-02-28 15:29:49

标签: javascript typing

在JavaScript中,变量是松散类型的,因此数字5和字符串"5"都可以被多个运算符视为一个数字。但是,是否有一种通用的方法可以在tunrime中找到JavaScripts转换功能,或者只是为了使松散键入成为可能的几种类型的运算符重载?

例如,给定变量a和包含类型名称type_canditate的字符串,如果a可以转换为type_candidate,是否有任何方式可以询问JavaScript与instanceof这样的硬打字操作员相比,这是一种可行的方式吗?例如,"5" instanceof Number评估为false,而Math.sin("5")完全可行。对于数字,可以明显地检查parseFloat(some_number)是否评估为NaN,但这是数字的特殊情况。

那么,是否存在命名类型的通用方法,并检查某个变量是否可以以有用的方式转换为给定类型?

1 个答案:

答案 0 :(得分:1)

JavaScript中有三种原始数据类型:字符串,数字和布尔值。

任何东西都可以转换为字符串或布尔值:

  • 所有对象都转换为truenull除外,后者变为false - 我在此仅提及它,因为typeof null提供object
  • 所有对象都有一个内置的toString方法,在转换为字符串时会调用该方法。
  • 将数字转换为字符串是通过给出数字的字符串表示来完成的(即。5变为"5"
  • 数字转换为布尔true,除非0变为false

转换为数字有点棘手,但技术上可行。如果它能找到有效数字,那么它就变成了这个数字。否则,它变为NaN

所以基本上...... 任何类型都可以通过这种方式转换成任何其他类型。您有任何类似“错误条件”的内容的唯一时间是NaN

相关问题