Js数据类型

1.Js的八种数据类型

  • NumberBooleanstringundefinednullobject
  • symbol(es6) 这种类型的对象永不相等,即始创建的时候传入相同的值,可以解决属性名冲突的问题,做为标记。
  • 谷歌67版本中还出现了一种 bigInt。是指安全存储、操作大整数。(但是很多人不把这个做为一个类型)。同的值,可以解决属性名冲突的问题,做为标记。

  A:Object包含了哪几种数据类型?

    其中包含了Data、function、Array等。这三种是常规用的。

  B:基本类型和引用类型有哪些呢?

    基本类型(单类型):除Object。 String、Number、boolean、null、undefined。

       引用类型:object。里面包含的 function、Array、Date。

2.类型区分:

  • 1.通常,数值、字符串、布尔值这三种类型,合称为原始类型(primitive type)的值,即它们是最基本的数据类型,不能再细分了。
  • 2.对象则称为合成类型(complex type)的值,因为一个对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器。
  • 3.至于undefinednull,一般将它们看成两个特殊值。
  • 对象是最复杂的数据类型,又可以分成三个子类型。
  1. 狭义的对象(object)
  2. 数组(array)
  3. 函数(function)

3.判断数据类型的方法

  1.typeof运算符

    { } 、[ ] 输出 object。 console.log( ) 输出 function。

    null是表示一个空对象指针,这也是typeof操作符检测 null 值时会返回 object 的原因。

  2.instanceof运算符

  3. Object.prototype.toString.call()方法

4.null 和 undefined 有什么区别

  Null 只有一个值,是 null。不存在的对象。

       Undefined 只有一个值,是undefined。没有初始化。undefined 是从 null 中派生出来的。

       简单理解就是:undefined 是没有定义的,null 是定义了但是为空。

5.== 和 === 有什么区别,什么场景下使用

  == 表示相同。

            比较的是物理地址,相当于比较两个对象的 hashCode ,肯定不相等的。

            类型不同,值也可能相等。

       === 表示严格相同。

            例:同为 null/undefined ,相等。

    简单理解:就是 == 就是先比较数据类型是否一样。=== 类型不同直接就是 false。

6.检测数组类型的方法

  1.console.log(arr  instanceof  Array )   返回true

  2.console.log(arr.constructor===Array)  返回true

  3.console.log(Array.isArray(arr))   返回true

原文地址:https://www.cnblogs.com/yxkNotes/p/11732620.html