Javascript 当被问到是否是字符串时,为什么这个句子返回false?

Javascript 当被问到是否是字符串时,为什么这个句子返回false?,javascript,string,Javascript,String,很抱歉,如果这个问题听起来很简单,但我无法在网上找到答案。当我问控制台,如果这个字符串是字符串,它会说false。为什么? "i am a string" === String; //outputs: false var x = "i am a string"; x === String; //outputs: false x != String; //outputs: true 这就是我进入控制台的真正原因 var myWonderfulArr

很抱歉,如果这个问题听起来很简单,但我无法在网上找到答案。当我问控制台,如果这个字符串是字符串,它会说false。为什么?

"i am a string" === String; //outputs: false

var x = "i am a string"; 
x === String; //outputs: false

x != String; //outputs: true 
这就是我进入控制台的真正原因

var myWonderfulArray = ["one", "two", 4,6, "five"];
function someFunction(element){
    return element === string;
}
myWonderfulArray.some(someFunction);
并输出以下错误:未捕获引用错误:未定义字符串

我一点也不明白!因为它实际上是一个字符串,就像里面有字符串一样。

  • x===String
    表示“is
    x
    完全等于
    String
    -prototype构造函数”,但它不是

  • 要比较JavaScript中的类型

    • JavaScript只有几个基本数据类型:
      • string
      • 编号
      • object
        (这也是
        null
        值的类型)
      • 未定义
      • boolean
      • bigint
      • 符号
      • 功能
    • 请注意,
      typeof
      运算符始终返回一个
      字符串
      值和(基本或内在)类型的名称。
      
      • symbol
        类型是最近才添加到JavaScript中的,这就是为什么
        typeof
        返回一个
        字符串而不是
        symbol
        值的原因,以防您感到奇怪
  • 不要将JavaScript类型与对象原型混淆。您不能使用
    typeof
    来确定
    对象的原型-您需要使用
    instanceof
    ,但是
    instanceof
    不可靠,因为JavaScript不使用标称类型(这就是为什么TypeScript具有类型保护函数来断言结构类型)

您的代码应该如下所示:

typeof "i am a string" === 'string'; //outputs: true

var x = "i am a string"; 
typeof x === 'string'; //outputs: true

  • x===String
    表示“is
    x
    完全等于
    String
    -prototype构造函数”,但它不是

  • 要比较JavaScript中的类型

    • JavaScript只有几个基本数据类型:
      • string
      • 编号
      • object
        (这也是
        null
        值的类型)
      • 未定义
      • boolean
      • bigint
      • 符号
      • 功能
    • 请注意,
      typeof
      运算符始终返回一个
      字符串
      值和(基本或内在)类型的名称。
      
      • symbol
        类型是最近才添加到JavaScript中的,这就是为什么
        typeof
        返回一个
        字符串而不是
        symbol
        值的原因,以防您感到奇怪
  • 不要将JavaScript类型与对象原型混淆。您不能使用
    typeof
    来确定
    对象的原型-您需要使用
    instanceof
    ,但是
    instanceof
    不可靠,因为JavaScript不使用标称类型(这就是为什么TypeScript具有类型保护函数来断言结构类型)

您的代码应该如下所示:

typeof "i am a string" === 'string'; //outputs: true

var x = "i am a string"; 
typeof x === 'string'; //outputs: true


要比较值时,可以使用比较运算符(=,==,!=,!=,!=,=)。如果要检查变量是否为
字符串
,请使用
typeof
运算符

例:


您可以了解有关比较运算符和
运算符的类型的详细信息。

当您要比较值时,可以使用比较运算符(=,==,!=,!=,!=,=)。如果要检查变量是否为
字符串
,请使用
typeof
运算符

例:


您可以了解有关比较运算符和
typeof
运算符的更多信息。

您需要
typeof
。它是一个字符串,而不是字符串本身。您需要
typeof
。它是一个字符串,而不是字符串本身。@Dai,刚刚更新了它,谢谢您的提醒。:D@Dai,刚刚更新,谢谢提醒D