【问题标题】:Correct use of typeOf for string对字符串正确使用 typeOf
【发布时间】:2013-12-01 10:04:51
【问题描述】:

谁能告诉我这是否是在 JavaScript 中进行 typeOf 检查的正确方法?

if ((typeof str === "string") && (str.toLowerCase() == "true")) return true;

我觉得字符串需要用引号括起来有点奇怪,我认为它会是 String 没有任何引号。我确定我在某处读到有正确和错误的方法来做到这一点。 谢谢。

【问题讨论】:

  • 您的代码看起来不错,typeof 返回一个字符串。 Documentation
  • typeof(用作运算符或函数)返回一个字符串,所以是的,引号是必需的。

标签: javascript string types


【解决方案1】:

根据Developper Mozilla developper network,您可以使用简单的引号来定义您要查找的类型。

它还列出了实现您所说的好方法和坏方法:

// Strings
typeof "" === 'string';
typeof "bla" === 'string';
typeof (typeof 1) === 'string'; // typeof always return a string
typeof String("abc") === 'string'; // but never use this form!

【讨论】:

    【解决方案2】:

    这解释了“typeof”的使用: http://www.javascriptkit.com/javatutors/determinevar2.shtml 我认为您将它与 Java 中的 instanceof 混淆了,您将在其中将它与 String 类进行匹配。

    【讨论】:

      【解决方案3】:

      如果你想在 if 语句中使用String,你可以使用构造函数。应该是这样的:

      if ((str.constructor == String)) ...
      

      查看http://jsfiddle.net/sCU3M/

      但是使用typeof str === "string"也是正确的。

      【讨论】:

        【解决方案4】:

        “typeof”函数返回一个字符串,这就是为什么您需要将结果作为字符串检查(带引号)。但是,您可以简单地将整个条件写为:

        return ((typeof str === "string") && (str.toLowerCase() == "true"));
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-01-08
          • 1970-01-01
          • 2016-02-16
          • 2015-08-06
          • 2014-08-14
          • 1970-01-01
          • 2016-05-15
          • 2018-12-08
          相关资源
          最近更新 更多