【JavaScript】數(shù)據(jù)類型

  1. JavaScript的數(shù)據(jù)類型分為兩種:原始類型和對象類型
    原始類型又叫基本數(shù)據(jù)類型
    對象類型又叫引用數(shù)據(jù)類型
  2. 區(qū)別:原始值不能更改,對象值可以更改。
    原始值存儲在棧內(nèi)存(stack)中
    對象值存儲在堆內(nèi)存(heap)中
    棧中存儲的是一個(gè)具體的值,可以直接拿來用,堆存儲的是一塊數(shù)據(jù),每塊數(shù)據(jù)有一個(gè)相應(yīng)的地址,地址一般存在棧中的一個(gè)變量里

原始類型(基本數(shù)據(jù)類型)

共有<strong>5種</strong>原始類型
number, string, boolean, null(空), undefined(未定義)

數(shù)字(number)

  1. 整型:一般以十進(jìn)制,也可以使用十六進(jìn)制。
  2. 浮點(diǎn)型:
    坑!
    js通過一種二進(jìn)制法表示分?jǐn)?shù),轉(zhuǎn)換成我們常用過的十進(jìn)制分?jǐn)?shù),會產(chǎn)生一個(gè)精度問題,如:
var x = 0.3 - 0.2
var y = 0.2 - 0.1
x == y   // false
x == 0.1 //false
x = 0.09999999999999998
y = 0.1

所以當(dāng)使用浮點(diǎn)數(shù)進(jìn)行計(jì)算的時(shí)候,要根據(jù)需要注意取整,比如動畫。

字符串(string)

一組放在引號里的大串字符序列
可以使用<strong>String對象</strong>的所有屬性和方法(存在隱式轉(zhuǎn)換)
屬性:str.length
常用方法:str.charAt(0); str.substring(1,4); str.indexOf('e'); str.split('e');

布爾值

任意的JS值都可以轉(zhuǎn)為布爾值
undefined,null,0,-0,NaN,""空字符串都會轉(zhuǎn)成false
除此之外,包括<strong>對象、數(shù)組</strong>,都會轉(zhuǎn)成true

null(空)

是一個(gè)控對象的占位符,類型typeof(null)為object

undefined(未定義)

typeof為undefined

<strong>null,undefined,NaN的區(qū)別</strong>
一 類型分析
未定義的值和定義但還沒有賦值的值為undefined
null是一種特殊的object
NaN是一種特殊的number
二 比較運(yùn)算
1)undefined與null是相等(==),但不全等(===);
2)NaN與任何值都不相等,與自己也不相等。

對象類型

對象是屬性的集合,每個(gè)屬性都由名/值對構(gòu)成。值可以是原始值,如數(shù)字、字符串,也可以是對象

  • 普通的JS對象是“命名值”的無序集合
  • 數(shù)組是一種特殊的對象,表示帶編號的值的有序集合,擁有一些和普通對象不同的特有行為特征
  • 函數(shù)也是一種特殊的對象

類(class)
數(shù)組(Array)類
函數(shù)(Function)類
日期(Date)類
正則(RegExp)類
錯(cuò)誤(Error)類

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

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

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