es6數(shù)據(jù)類型有七種:1、Boolean(布爾型);2、Null(空類型);3、Undefined(未賦值類型);4、Number(數(shù)值類型);5、String(字符串類型);6、Symbol(獨(dú)一無二類型);7、Object(對象類型)。
本文操作環(huán)境:windows10系統(tǒng)、Vue2.9.6版,DELL G3電腦。
es6數(shù)據(jù)類型有哪幾種
es6t定義了7種數(shù)據(jù)類型:6種原始數(shù)據(jù)類型、1種對象類型。
分別是:
-
Boolean
-
Null
-
Undefined
-
Number
-
String
-
Symbol
-
Object
詳細(xì)介紹:
1、一個值數(shù)據(jù)類型:null 、undefined
自定義個變量沒有必要顯示的定義為undefined,但是對于null而言就是不行的,也就是說:只要意在保存對象但是還沒有真正的保存對象,就應(yīng)該明確的讓變量保存null值。
主要總結(jié)二者的異同點(diǎn):
相同點(diǎn):都是一個值的數(shù)據(jù)類型;二者參與判斷時都返回false;二者都沒有方法
不同點(diǎn):(a)、null 是一個對象,而undefined 不是以個對象;(b)、null 是一個關(guān)鍵字,undefined不是關(guān)鍵字;(c)、null轉(zhuǎn)換為數(shù)字時為0,而undefined轉(zhuǎn)換為數(shù)字時是NaN;(d)、typeof null返回’object‘,typeof undefined 返回’undefined‘;
alert(null == undefined) ;//true
2、兩個值的數(shù)據(jù)類型:boolean 即true 和false
主要用途是用于判斷;
正常情況下,只有這六種情況下會轉(zhuǎn)為false:空字符串、null、undefined、0、-0、NaN
把一個數(shù)組如何轉(zhuǎn)換為boolean值可以用兩中方法:Boolean()、 !!()
3、三個值的數(shù)據(jù)類型:number 即整數(shù)、浮點(diǎn)數(shù)、NaN(個人分類,不重要)。
使用number時建議:盡量使用十進(jìn)制,少用十六進(jìn)制,不用八進(jìn)制。
在使用浮點(diǎn)數(shù)時不要進(jìn)行數(shù)據(jù)的比較。0.1+0.2不要與0.3進(jìn)行比較。原因就是計(jì)算機(jī)采用二進(jìn)制表示數(shù)據(jù),0.1的二進(jìn)制表示數(shù)加上0.2的二進(jìn)制表示數(shù)不等于0.3的二進(jìn)制表示數(shù)。
在number中有一個奇葩,自身都不相等。即alert(NaN == NaN) // false;
但是NaN 是數(shù)據(jù)類型,也就是說 typeof NaN 的返回值是’number‘;
針對上面兩個特性,ECMAScript提供了一個函數(shù)isNaN(); 用途是判斷傳入的值能否轉(zhuǎn)換為數(shù)字,返回值是boolean值。
空字符串轉(zhuǎn)換為數(shù)字是0;
將一個值轉(zhuǎn)換為數(shù)字類型可以使用Number();
4、String 字符串
字符串一般用雙引號或者單引號表示,推薦是使用單引號進(jìn)行字符串的表示。
字符串的特點(diǎn):在ECMAScript中的字符串是不可變的,也就是說,字符串一旦創(chuàng)建,它的值就不被改變,要是改變字符串的值,就先銷毀原來字符串,然后在用一個包含新值字符串填充該變量。
將一個值轉(zhuǎn)化為字符串類型,有兩個方式,一是調(diào)用toString()方法;另一個就是String();
注意:null、undefined沒有toString()方法。
5、Symbol
Symbol的值有兩種。一種是原來的屬性名。一種是有Symbol()生成的屬性名,由于其表示獨(dú)一無二,所以該屬性名不會沖突。
使用Symbol時注意:Symbol函數(shù)前不能用new操作符(Symbol是一個原始數(shù)據(jù)類型,不是對象);不能為Symbol添加方法;symbol是類字符串形式的基本數(shù)據(jù)類型;symbol可以轉(zhuǎn)化為字符串(兩種方式,前面已經(jīng)介紹了。),可以轉(zhuǎn)換為boolean,但是不能轉(zhuǎn)化為Number。
使用Symbol()時最好為其傳入?yún)?shù),不傳入?yún)?shù)時,使用typeof 時都是返回'symbol',加入?yún)?shù)時就會返回'symbol(參數(shù))',容易區(qū)分;由于symbol的值是獨(dú)一無二的,即使是傳入相同的參數(shù),二者的值也是不等的。
由于Symbol的值是獨(dú)一無二的,所以可以作為屬性名存在,但是作為屬性名是,不能進(jìn)行點(diǎn)(.)操作,所有的Symbol值都放在方括號([])中。
【