【问题标题】:How many data types are there in JS, and what are they?JS中有多少种数据类型,它们是什么?
【发布时间】:2015-09-11 09:29:01
【问题描述】:

我开始阅读一本书,Javascript for Kids。作者在其中指出,共有三种数据类型:

  • 数字
  • 字符串
  • 布尔值

但是,根据W3Schools,有四个:

  • 数字
  • 字符串
  • 数组
  • 对象

我想知道哪个是正确的。

【问题讨论】:

  • 不要忘记 Symbol 和 BigInts。

标签: javascript types


【解决方案1】:

检查以下link

  • 六种原始数据类型:

    1.布尔值

    2.空

    3.未定义

    4.号码

    5.字符串

    6.Symbol(ECMAScript 6 中的新功能)

  • 和对象

【讨论】:

  • 等等……null 不是类型。 typeof 不会返回任何内容。
  • 如果 mozilla 说 null 是一种数据类型,则故事结束。无论如何,有几个与此相关的问题。阅读此developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • @Fawzan 但是类型 null 被归类为“对象”
【解决方案2】:

您可以使用typeof 运算符对其进行测试:

typeof 运算符在放置在任何单个操作数之前时为您提供数据类型的名称。

因此,尝试将typeof 与任何操作数变量一起使用:它将给出以下数据类型名称之一:

  1. 字符串
  2. 号码
  3. 布尔值
  4. 对象
  5. 未定义

因此,这些是 Javascript 中的五种数据类型。

var val1 = "New World";   //returns String
var val2 = 5;             //returns Number
var val3 = true;          //returns Boolean
var val4 = [1,2,3];       //returns Object
var val5 = null;          //returns Object (Value is null, but type is still an object)
var val6;                 //returns Undefined

【讨论】:

  • val4 不会被视为一个数组吗?
  • 它的值类型肯定是数组,但由于Javascript只能将其归类为上述数据类型之一,所以将Array归入对象类别。虽然它把它当作一个特殊的对象,但绝对是在 Object 之下。
  • @eagercoder 不,type 是一个对象,instance 是一个Array。最终,您将了解原型:数组并没有真正以特殊方式处理。它们只是具有Array 接口的对象,因此支持sortmapfilter 等方法。每个对象都是某个函数的实例(在本例中为function Array())并因此实现它作为原型。
  • 如果您查看 w3schools.com/js/js_datatypes.asp ,您会发现 W3Schools 提到以下行:“在 JavaScript 中,数组是一种特殊类型的对象。因此 typeof [1,2,3,4] 返回对象” @Xufox :你刚才说了我说的,它的类型是对象。虽然,从您的评论中不清楚,您在谈论哪种类型。数据类型还是值类型?我刚才已经清楚地向 Eagercoder 提到过,它的数据类型是 OBJECT,而它的值类型是数组。就这么简单。
  • @svik I wouldn’t listen to W3Schools。数组绝对没有什么特别之处。唯一特别的是一种写数组字面量的方法:[2,4,6]。但这与数据类型无关,仅与语法有关。
【解决方案3】:

事情实际上并不像他们在上面的答案中描述的那么简单......它们通常不在 javascriptland 中;)

typeof 是一个“官方”函数,用于在 javascript 中获取 type,但在某些情况下它可能会产生一些意想不到的结果...

1.字符串

typeof "String"
typeof Date(2011,01,01)

“字符串”

2。数字

typeof 42
typeof NaN,哈哈

“数字”

3.布尔

typeof true(有效值truefalse

“布尔值”

4.对象

typeof {}
typeof []
typeof null
typeof /aaa/
typeof Error()

“对象”

5.功能

typeof function(){}

“功能”

6.未定义

var var1; typeof var1

“未定义”

Alternative is to use({}).toString() 大部分时间都会让你得到更准确的答案...

【讨论】:

    【解决方案4】:

    JavaScript 中有 7 种基本数据类型:

    1. 一个号码
    2. 一个字符串
    3. 布尔(逻辑类型)
    4. null”值
    5. 未定义”值
    6. 对象和符号
    7. typeof 运算符

    有关更多详细信息,您可以通过此链接 - https://javascript.info/types

    【讨论】:

      【解决方案5】:

      最新的 ECMAScript 标准定义了八种数据类型,分别是: 七种原始数据类型: 布尔值, 空值, 不明确的, 数字, 大整数, 细绳, 象征 和对象 更多信息请参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#BigInt_type

      【讨论】:

        猜你喜欢
        • 2020-03-29
        • 2018-06-09
        • 2012-02-02
        • 2015-06-05
        • 2021-12-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多