1.Js的八种数据类型
- Number、Boolean、string、undefined、null、object、
- 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.至于
undefined
和null
,一般将它们看成两个特殊值。
- 对象是最复杂的数据类型,又可以分成三个子类型。
- 狭义的对象(object)
- 数组(array)
- 函数(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