日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

科普向--详解JavaScript中的数据类型

發(fā)布時(shí)間:2023/12/15 javascript 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 科普向--详解JavaScript中的数据类型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

對于前端的小伙伴而言,JS的數(shù)據(jù)類型可謂是必懂的知識點(diǎn)。雖然這個知識點(diǎn)很是基礎(chǔ)了,不過仍然有不少人會在這一塊犯些小錯誤。比如網(wǎng)上流傳的“JavaScriptS一切皆對象”,其實(shí)是個很不嚴(yán)謹(jǐn)?shù)恼f法,JS中只有部分?jǐn)?shù)據(jù)類型是對象;再比如有小伙伴面試回答“JS的數(shù)據(jù)類型有哪些”這類問題時(shí),給出的答案中竟然還包含了array、function。本文就是針對JavaScript中的數(shù)據(jù)類型,做一個詳細(xì)的匯總。

JavaScript中的數(shù)據(jù)類型到底有哪些

至ES6為止,JavaScript共有七種數(shù)據(jù)類型:NumberStringBooleanUndefinedNullObjectSymbol。其中,Number、String、Boolean、Undefined、Null、Symbol屬于簡單數(shù)據(jù)類型(也稱基本數(shù)據(jù)類型),Objec則屬于復(fù)雜數(shù)據(jù)類型,同時(shí)Symbol則是ES6新出的數(shù)據(jù)類型

1、Number

在JS中,Number這種數(shù)據(jù)類型使用IEEE754的格式來表示整數(shù)和浮點(diǎn)數(shù)值,而ECMA定義了不同的數(shù)值字面量格式

  • 整數(shù)和小數(shù):1 1.1 .1
  • 科學(xué)記數(shù)法: 1.23e2
  • 二進(jìn)制:0b11
  • 八進(jìn)制:011(后來 ES5 添加了 0o11 語法)
  • 十六進(jìn)制:0x11
  • 特殊數(shù)值:NaN(Not a Number,這個數(shù)值用于表示一個本來要返回?cái)?shù)值的操作數(shù)未返回?cái)?shù)值的情況)

2、String

String類型用于表示由0個或多個16位的Unicode字符組成的字符序串,字符串可以由雙引號"或者單引號'表示

  • 空字符串:''
  • 單行字符串:var s = '12345'
  • 多行字符串:
var s = '12345' +'67890' // 無回車符號var s = `1234567890` // 含回車符號 復(fù)制代碼

3、Boolean

Boolean這種數(shù)據(jù)類型只有兩個取值:true和false

  • a && b 在 a 和 b 都為 true 時(shí),取值為 true;否則為 false
  • a || b 在 a 和 b 都為 false 時(shí),取值為 false;否則為 true

4、 Undefined

Undefined這種數(shù)據(jù)類型只有一個取值,即:undefined。在使用var聲明變量但未對變量加以初始化時(shí),這個變量的值就是undefined

5、Null

同Undefined數(shù)據(jù)類型一樣,Null這種數(shù)據(jù)類型也只有一個取值null,如果定義的變量準(zhǔn)備在將來用來保存對象,那么最合適的做法就是將這個變量初始化為null,比如:

var person = null person = {name:'wjm',gender:'male'} 復(fù)制代碼

6、Object

Object之所以被稱為復(fù)雜數(shù)據(jù)類型,就是因?yàn)槠浔举|(zhì)上就是由前面的一種或多種基本數(shù)據(jù)類型(無序地)組合在一起而形成的數(shù)據(jù)

  • object 的 key 一律是字符串,不存在其他類型的 key
  • object[''] 是合法的,因?yàn)榭兆址彩莻€String數(shù)據(jù)類型的值
  • object['key'] 可以寫作 object.key
  • 注意 object.key 與 object[key] 不同
  • object 里面可以有 object、array、function
var person = {name: 'Frank', 'child': {name: 'Jack'}, like: ['font','teach'],walk: function(){},// 最后這個逗號可有可無} 復(fù)制代碼
  • object中的屬性可以用delete操作符刪除:delete object['name']
  • 一般來說,object的屬性可以用for-in語句來枚舉,值得注意的是,JS對象的屬性沒有順序,因此,通過for-in循環(huán)出的屬性名是無序的
for(var propName in object) {console.log(object[propName]) } 復(fù)制代碼

7、Symbol

Symbol 是ES6所支持的一種新的數(shù)據(jù)類型,使用Symbol 能夠生成一個全局唯一的值,如下:

var a1 = Symbol('a') var a2 = Symbol('a') a1 !== a2 // true 復(fù)制代碼

一般來說,Symbol這種數(shù)據(jù)類型,主要有以下作用:

  • 作為對象屬性名避免屬性名沖突
  • 替代代碼中多次使用的字符串(例如:abc),多次使用的字符串在代碼中不易維護(hù),而這時(shí)候定義一個對象的屬性(屬性名用Symbol格式),值為abc,就可以作為全局變量來使用了
  • 由于以Symbol值作為名稱的屬性,不會被常規(guī)方法遍歷得到。我們可以利用這個特性,為對象定義一些非私有的、但又希望只用于內(nèi)部的方法
  • 如果我們希望重新使用同一個Symbol值,Symbol.for方法可以做到這一點(diǎn)。它接受一個字符串作為參數(shù),然后搜索有沒有以該參數(shù)作為名稱的Symbol值。如果有,就返回這個Symbol值,否則就新建并返回一個以該字符串為名稱的Symbol值

以上理解,參考了阮一峰的ECMAScript 6入門

所以JavaScript中的數(shù)據(jù)類型到底有哪些,至此已經(jīng)很明朗清晰了,請隨我再回憶一遍:NumberStringBooleanUndefinedNullObjectSymbol。然后,不要再弄錯了喲!

如果這篇文章對你有幫助,可以的話,不妨點(diǎn)個喜歡呢

總結(jié)

以上是生活随笔為你收集整理的科普向--详解JavaScript中的数据类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。