javascript
科普向--详解JavaScript中的数据类型
對于前端的小伙伴而言,JS的數據類型可謂是必懂的知識點。雖然這個知識點很是基礎了,不過仍然有不少人會在這一塊犯些小錯誤。比如網上流傳的“JavaScriptS一切皆對象”,其實是個很不嚴謹的說法,JS中只有部分數據類型是對象;再比如有小伙伴面試回答“JS的數據類型有哪些”這類問題時,給出的答案中竟然還包含了array、function。本文就是針對JavaScript中的數據類型,做一個詳細的匯總。
JavaScript中的數據類型到底有哪些
至ES6為止,JavaScript共有七種數據類型:Number、String、Boolean、Undefined、Null、Object、Symbol。其中,Number、String、Boolean、Undefined、Null、Symbol屬于簡單數據類型(也稱基本數據類型),Objec則屬于復雜數據類型,同時Symbol則是ES6新出的數據類型
1、Number
在JS中,Number這種數據類型使用IEEE754的格式來表示整數和浮點數值,而ECMA定義了不同的數值字面量格式
- 整數和小數:1 1.1 .1
- 科學記數法: 1.23e2
- 二進制:0b11
- 八進制:011(后來 ES5 添加了 0o11 語法)
- 十六進制:0x11
- 特殊數值:NaN(Not a Number,這個數值用于表示一個本來要返回數值的操作數未返回數值的情況)
2、String
String類型用于表示由0個或多個16位的Unicode字符組成的字符序串,字符串可以由雙引號"或者單引號'表示
- 空字符串:''
- 單行字符串:var s = '12345'
- 多行字符串:
3、Boolean
Boolean這種數據類型只有兩個取值:true和false
- a && b 在 a 和 b 都為 true 時,取值為 true;否則為 false
- a || b 在 a 和 b 都為 false 時,取值為 false;否則為 true
4、 Undefined
Undefined這種數據類型只有一個取值,即:undefined。在使用var聲明變量但未對變量加以初始化時,這個變量的值就是undefined
5、Null
同Undefined數據類型一樣,Null這種數據類型也只有一個取值null,如果定義的變量準備在將來用來保存對象,那么最合適的做法就是將這個變量初始化為null,比如:
var person = null person = {name:'wjm',gender:'male'} 復制代碼6、Object
Object之所以被稱為復雜數據類型,就是因為其本質上就是由前面的一種或多種基本數據類型(無序地)組合在一起而形成的數據
- object 的 key 一律是字符串,不存在其他類型的 key
- object[''] 是合法的,因為空字符串也是個String數據類型的值
- object['key'] 可以寫作 object.key
- 注意 object.key 與 object[key] 不同
- object 里面可以有 object、array、function
- object中的屬性可以用delete操作符刪除:delete object['name']
- 一般來說,object的屬性可以用for-in語句來枚舉,值得注意的是,JS對象的屬性沒有順序,因此,通過for-in循環出的屬性名是無序的
7、Symbol
Symbol 是ES6所支持的一種新的數據類型,使用Symbol 能夠生成一個全局唯一的值,如下:
var a1 = Symbol('a') var a2 = Symbol('a') a1 !== a2 // true 復制代碼一般來說,Symbol這種數據類型,主要有以下作用:
- 作為對象屬性名避免屬性名沖突
- 替代代碼中多次使用的字符串(例如:abc),多次使用的字符串在代碼中不易維護,而這時候定義一個對象的屬性(屬性名用Symbol格式),值為abc,就可以作為全局變量來使用了
- 由于以Symbol值作為名稱的屬性,不會被常規方法遍歷得到。我們可以利用這個特性,為對象定義一些非私有的、但又希望只用于內部的方法
- 如果我們希望重新使用同一個Symbol值,Symbol.for方法可以做到這一點。它接受一個字符串作為參數,然后搜索有沒有以該參數作為名稱的Symbol值。如果有,就返回這個Symbol值,否則就新建并返回一個以該字符串為名稱的Symbol值
以上理解,參考了阮一峰的ECMAScript 6入門
所以JavaScript中的數據類型到底有哪些,至此已經很明朗清晰了,請隨我再回憶一遍:Number、String、Boolean、Undefined、Null、Object、Symbol。然后,不要再弄錯了喲!
如果這篇文章對你有幫助,可以的話,不妨點個喜歡呢
總結
以上是生活随笔為你收集整理的科普向--详解JavaScript中的数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为p30防水吗(华为P30防水吗)
- 下一篇: 企业分布式微服务云SpringCloud