javascript原生知識之 數(shù)據(jù)類型及用法

數(shù)據(jù)類型及用法

????ECMAScript中有5種簡單數(shù)據(jù)類型(也稱為基本數(shù)據(jù)類型):Undefined、Null、Boolean、Number和String。還有一種復(fù)雜數(shù)據(jù)類型----Object,還有Es6新增的Symbol類型。object本質(zhì)上是由一組無序的名值對組成的。
? ? typeof----用來檢測給定變量的數(shù)據(jù)類型, 返回的值有
? ? ? ? "undefined" --- 如果這個值未定義
? ? ? ? "boolean" ---- 如果這個值是布爾值
? ? ? ? "string" ---- 如果這個值是字符串
? ? ? ? "number" ---- 如果這個值是數(shù)值
? ? ? ? "object" ---? ? 如果這個值是對象或者null
? ? ? ? "function" --- 如果這個值是函數(shù)

? ? ? undefined類型:? 在使用var聲明變量但未對其加以初始化時,這個值就是undefined。用typeof檢測的時候,對已聲明的和未聲明的都會返回undefined值。
? ? ? ?null類型:? null類型是一個特殊的值,表示一個空對象指針,使用typeof操作符檢測null值時會返回“object”。如果定義的變量準(zhǔn)備在將來用于保存對象,那么最好將變量初始化為null而不是其他值。這樣一來,只要直接檢查null值就可以知道相應(yīng)的變量是否已經(jīng)保存了一個對象的引用。
? ? ? ?boolean類型:? boolean類型只有兩個字面值: true 和 false。各種類型轉(zhuǎn)成boolean的規(guī)則:
? ? ? ? ? ? 數(shù)據(jù)類型? ? ? ? ? ? ? ? ? ? 轉(zhuǎn)換為true的值? ? ? ? ? ? ? ? ? ? ? ? ? ?轉(zhuǎn)換為false的值
? ? ? ? ? ? Boolean? ? ? ? ? ? ? ? ? ? ? true? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? false
? ? ? ? ? ? String? ? ? ? ? ? ? ? ? ? ? ? ? 任何非空字符串? ? ? ? ? ? ? ? ? ? ? ? ? ""(空字符串)
? ? ? ? ? ? Number? ? ? ? ? ? ? ? ? ? ? ?任何非零數(shù)字值(包括無窮大)? ? ? 0和NaN
? ? ? ? ? ? Object? ? ? ? ? ? ? ? ? ? ? ? ? 任何對象? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?null
? ? ? ? ? ? Undefined? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? undefined? ? ? ? ? ?
? ? ? ? number類型:? number類型是用來表示整數(shù)和浮點數(shù)值(浮點數(shù)值再某些語言中也被稱為雙精度數(shù)值)。最基本的數(shù)值格式是十進制整數(shù)。除了十進制表示外,整數(shù)還可以通過八進制(以8為基數(shù))或十六進制(以16為基數(shù))的字面值來表示。其中,八進制字面值的第一位必須是零(0),然后是八進制數(shù)字序列(0~7).如果字面值中的數(shù)值超出了范圍,那么前導(dǎo)零將被忽略,后面的數(shù)值將被當(dāng)作十進制數(shù)值解析。在嚴(yán)格模式下八進制字面量無效。? ?十六進制字面值的前兩位碧血是0x,后跟任何十六進制數(shù)字(0~9及A~F)。其中,字母A~F可以大寫,也可以小寫。
? ? ? ? 浮點數(shù)值:浮點數(shù)值為該數(shù)值中必須包含一個小數(shù)點,并且小數(shù)點后面必須至少有一位數(shù)字。由于保存浮點數(shù)值需要的內(nèi)存空間是保存整數(shù)數(shù)值的兩倍,因此ECMAScript會不失時機地將浮點數(shù)值轉(zhuǎn)換為整數(shù)值。顯然,如果小數(shù)點后面沒有跟任何數(shù)字,那么這個數(shù)值就可以作為整數(shù)值來保存。同樣地,如果浮點數(shù)值本身表示的就是一個整數(shù)(如1.0),那么該值也會被轉(zhuǎn)換為整數(shù)。極大或極小的數(shù)值可以用e表示法來表示。用浮點數(shù)值進行運算的時候注意,會有丟精度問題。
? ? ? ? 數(shù)值范圍:ECMAScript能夠表示的最小數(shù)值保存在Number.MIN_VALUE中,在大多數(shù)瀏覽器中,這個值是5e-324, 能夠表示的最大數(shù)字保存在Number.MAX_VALUE中,這個值是1.7976931348623157e+308。如果某次計算的結(jié)果得到了一個超出JavaScript數(shù)值范圍的值,那么這個數(shù)值將被自動轉(zhuǎn)換成特殊的Infinity值。具體來說,如果這個數(shù)值是負(fù)數(shù),則會被轉(zhuǎn)換為-Infinity(負(fù)無窮),如果這個數(shù)值是正數(shù),則會被轉(zhuǎn)換成Infinity(正無窮)
? ? ? ?NaN: 非數(shù)值,即一個特殊的數(shù)值,在一些數(shù)值運算中返回了不是數(shù)值的情況時,就會返回NaN.
? ? ? String類型:String類型用于表示由零或多個16位Unicode字符組成的字符序列,即字符串。
? ? ? Object類型:對象就是一組數(shù)據(jù)和功能的集合。Object類型是所有它的實例的基礎(chǔ)。Object的每個實例都具有下列屬性和方法:
? ? ? ? ? ?constructor:? 保存著用于創(chuàng)建當(dāng)前對象的函數(shù)。對于前面的例子而言,構(gòu)造函數(shù)(constructor)就是Object()
? ? ? ? ? ?hasOwnProperty(propertyName): 用于檢查給定的屬性在當(dāng)前對象實例中(而不是在實例的原型中)是否存在。其中,作為參數(shù)的屬性名(propertyName)必須以字符串形式指定(例如,o.hasOwnProperty("name"))
? ? ? ? ? ?isPrototypeOf(object):用于檢查傳入的對象是否是傳入對象的原型
? ? ? ? ? ?propertyIsEnumerable(propertyName):用于檢查給定的屬性是否能夠使用for-in語句來枚舉。與hasOwnProperty()方法一樣,作為參數(shù)的屬性名必須以字符串形式指定
? ? ? ? ? ? toLocaleString(): 返回對象的字符串表示,該字符串與執(zhí)行環(huán)境的地區(qū)對應(yīng)。
? ? ? ? ? ? toString(): 返回對象的字符串表示。
? ? ? ? ? ? valueOf(): 返回對象的字符串、數(shù)值或布爾值表示。通常與toString()方法的返回值相同。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容