在ES5的時候艰亮,我們認(rèn)知的數(shù)據(jù)類型確實(shí)是 6種:Number闭翩、String、Boolean迄埃、undefined疗韵、object、Null侄非。
ES6 中新增了一種 Symbol 蕉汪。這種類型的對象永不相等,即使創(chuàng)建的時候傳入相同的值彩库,可以解決屬性名沖突的問題,做為標(biāo)記先蒋。
谷歌67版本中還出現(xiàn)了一種 bigInt骇钦。是指安全存儲、操作大整數(shù)竞漾。(但是很多人不把這個做為一個類型)眯搭。
JS數(shù)據(jù)類型:JS 的數(shù)據(jù)類型有幾種窥翩?8種。
Number鳞仙、String寇蚊、Boolean、Null棍好、undefined仗岸、object、symbol借笙、bigInt扒怖。
JS數(shù)據(jù)類型:Object 中包含了哪幾種類型?
其中包含了Date业稼、function盗痒、Array等。這三種是常規(guī)用的低散。
JS數(shù)據(jù)類型:JS的基本類型和引用類型有哪些呢俯邓?區(qū)別是什么?
基本類型(單類型):String熔号、Number稽鞭、boolean、null跨嘉、undefined川慌。
引用類型:object。里面包含的 function祠乃、Array梦重、Date。
區(qū)別:
1.首先是復(fù)雜數(shù)據(jù)類型保存在堆內(nèi)存中亮瓷,而基本數(shù)據(jù)類型保存在棧內(nèi)存中琴拧,然后聲明一個復(fù)雜數(shù)據(jù)類型變量中保存的是一個復(fù)雜數(shù)據(jù)類型的地址,基本數(shù)據(jù)類型保存的是一個具體的值
2.聲明兩個復(fù)雜數(shù)據(jù)類型指向同一個地址的時候嘱支,改變一個另一個也會跟著改變
如何判斷一個引用類型的數(shù)據(jù)類型
//最安全的判斷方法
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通常用來判斷基本數(shù)據(jù)類型蚓胸,它返回表示數(shù)據(jù)類型的字符串(返回結(jié)果只能包括number,boolean,string,function,undefined,object)除师; *注意沛膳,使用typeof來判斷null和引用類型的實(shí)例 返回的結(jié)果都是 '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