1.js中的數(shù)據(jù)類型一共有6種,分別是
數(shù)值(number):整數(shù)和小數(shù)(比如1和3.14)
字符串(string):文本(比如Hello World)。
布爾值(boolean):表示真?zhèn)蔚膬蓚€特殊值,即true(真)和false(假)
undefined:表示“未定義”或不存在,即由于目前沒有定義,所以此處暫時沒有任何值
null:表示空值,即此處的值為空。
對象(object):各種值組成的集合。
2.而這七種類型又可以再分為三種
原始類型:包含數(shù)值、字符串、布爾值這三種類型,即它們是最基本的數(shù)據(jù)類型,不能再細(xì)分了。
合成類型:對象因?yàn)橐粋€對象往往是多個原始類型的值的合成,可以看作是一個存放各種值的容器
兩個特殊值:undefined,null
3.再這里再提一次對象,作為最復(fù)雜的數(shù)據(jù)類型,對象又可以分為三種
狹義的對象(object)
數(shù)組(array)
函數(shù)(function)
4.那么我們在實(shí)際中應(yīng)該怎么確定一個數(shù)據(jù)的類型呢,共有三種方法
typeof運(yùn)算符
instanceof運(yùn)算符
Object.prototype.toString方法
這里我們著重說一下typeof運(yùn)算符
typeof 123,返回number
typeof '123' 返回string
typeof true 返回boolean
functionf(){}
typeof f 返回function(函數(shù))
typeof v(若v沒有定義,則返回undefined)
null 和對象(object)統(tǒng)統(tǒng)返回object
5.undefined和null有很多相像之處,那么它們不同的地方在哪里呢?
最大的不同就是null自動轉(zhuǎn)化為0
而undefined自動轉(zhuǎn)化為NAN
6.布爾值:布爾值代表“真”和“假”兩個狀態(tài)?!罢妗庇藐P(guān)鍵字true表示,“假”用關(guān)鍵字false表示。布爾值只有這兩個值。
下列運(yùn)算符會返回布爾值:
兩元邏輯運(yùn)算符:?&&?(And),||?(Or)
前置邏輯運(yùn)算符:?!?(Not)
相等運(yùn)算符:===,!==,==,!=
比較運(yùn)算符:>,>=,<,<=
布爾值往往用于流程的控制,判斷下一階段是否發(fā)生
如果 JavaScript 預(yù)期某個位置應(yīng)該是布爾值,會將該位置上現(xiàn)有的值自動轉(zhuǎn)為布爾值。轉(zhuǎn)換規(guī)則是除了下面六個值被轉(zhuǎn)為false,其他值都視為true。
undefined
null
false
0
NaN
""或''(空字符串)