在ES5的时候,我们认知的数据类型确实是 6种:Number、String、Boolean、undefined、object、Null。
ES6 中新增了一种 Symbol 。这种类型的对象永不相等,即使创建的时候传入相同的值,可以解决属性名冲突的问题,做为标记。
谷歌67版本中还出现了一种 bigInt。是指安全存储、操作大整数。(但是很多人不把这个做为一个类型)。
JS数据类型:JS 的数据类型有几种?8种。
Number、String、Boolean、Null、undefined、object、symbol、bigInt。
JS数据类型:Object 中包含了哪几种类型?
其中包含了Date、function、Array等。这三种是常规用的。
JS数据类型:JS的基本类型和引用类型有哪些呢?区别是什么?
基本类型(单类型):String、Number、boolean、null、undefined。
引用类型:object。里面包含的 function、Array、Date。
区别:
1.首先是复杂数据类型保存在堆内存中,而基本数据类型保存在栈内存中,然后声明一个复杂数据类型变量中保存的是一个复杂数据类型的地址,基本数据类型保存的是一个具体的值
2.声明两个复杂数据类型指向同一个地址的时候,改变一个另一个也会跟着改变
如何判断一个引用类型的数据类型
//最安全的判断方法
var arr = [];var arr2 = {};var arr3 = new Date();var arr4 = new RegExp();var arr5 = null;
console.log( Object.prototype.toString.call(arr) == '[object Array]' ); //true
console.log( Object.prototype.toString.call(arr2) == '[object Object]' ); //true
console.log( Object.prototype.toString.call(arr3) == '[object Date]' ); //true
console.log( Object.prototype.toString.call(arr4) == '[object RegExp]' ); //true
console.log( Object.prototype.toString.call(arr5) == '[object Null]' ); //true
typeof通常用来判断基本数据类型,它返回表示数据类型的字符串(返回结果只能包括number,boolean,string,function,undefined,object); *注意,使用typeof来判断null和引用类型的实例 返回的结果都是 'object'
可以使用typeof判断变量是否存在(如if(typeof a!="undefined"){...})
typeof 1 //number
typeof 'a' //string
typeof true //boolean
typeof undefined //undefined
typeof null //object
typeof {} //object
typeof [1,2,3] //object
function Fn(){}
typeof new Fn() //object
typeof new Array() //object