【冰山白皮書】JS中的數據類型

圖片描述
什麼是數據類型
計算機的本質是計算
計算的本質是對值進行操做
參與計算的值和計算的結果統稱爲數據
把數據分門別類的概括出來就是數據類型python

JS中的數據類型
6+1種
基本數據類型:
數字(Number)
真假(Boolean)
字符串(String)
空(Null undefined)
ES6新增數據類型(Symbol)
複雜數據類型:對象(Object)ruby

什麼是對象●
除基本數據類型以外的數據都是對象,由屬性組成的無序的數據集合
EXP:函數

美女={
    姓名:xxx(字符串)
    年齡:30(數字)
    是否知名:是(布爾)
    生日:undefined(空)
    三圍:{
         胸圍:111
         腰圍:111         (對象)
         臀圍:111
    }
}

表現區別
1.對象對應的變量保存的是內存地址的引用,基本數據類型對應的變量保存的是值
2.對象是能夠改變的,基本數據類型是不可改變的
3.對象可使用屬性和方法,基本數據類型不可使用屬性和方法本質區別
基礎數據類型佔用固定的內存,保存在棧中,對象佔用不固定的內存保存在堆中url

數據類型的檢測●
使用typeof
typeof和+ - 同樣,是運算符,可使用括號也能夠不使用括號
EXP:spa

var a=true,b=true;
console.log(typeof a==b)  //false

typeof的返回值
1.返回值是字符串類型
2.包括number string boolean undefined object function
3.多了function 少了null
4.typeof null返回值是object(本質緣由:typeof是將數據轉換成二進制進行判斷,若是轉換後的結果是000開頭那麼他就是對象,可是null轉換成二進制後的結果是0000)code

JS的動態性
JS是動態語言,只有當值參與計算的時候纔去判斷值的類型相似的還包括python、ruby JAVA、C++屬於靜態語言,在賦值的時候就肯定了數據類型對象

undefined和null的區別
在ES3以前是沒有undefined這個值的,ES3標準中新添加的blog

相同點
1.都只有一個值——空
2.參與判斷的時候都返回false
3.都不能夠訪問屬性和調用方法圖片

不一樣點
1.null是關鍵字,undefined不是關鍵字
2.unll是對象可是值爲空,undefined的本質是全局對象的屬性,這個屬性的值叫作「未定義」
3.null是已經初始化的,undefined是未初始化的
4.使用typeof 返回的結果一個是object 一個是undefined內存

如何使用
1.聲明一個變量而且必定須要賦值的時候使用null
2.檢測某個值是否存在的時候使用===undefined(全等)
3.檢測某個值是否爲空的時候使用===null(全等)
4.判斷某個值是否存在或者爲空的時候使用==null(相等)

空賦值的應用
1.在函數的開頭使用var undefined來提高查找速度
2.在聲明一個指向對象的變量或者屬性的時候使用var xxxx=null或者xxx:null

《JS中的數據類型》提取碼smke

相關文章
相關標籤/搜索