JS 數據類型總結

    JavaScript共有七種數據類型,包括六種基本數據類型(number、string、boolean、null、undefined、symbol)和一種引用類型。javascript

一、number(數字類型)

number類型即數字類型,數字能夠帶小數點也能夠不帶,也能夠經過科學計數法來寫。前端

var y=123e5;      // 12300000
var z=123e-5;     // 0.00123
複製代碼

js有一個精度問題坑:java

var a = 0.1;
var b = 0.2;
console.log(a+b))//0.30000000000000004
複製代碼

原本0.1+0.2應該等於0.3可控制檯打印的倒是0.30000000000000004,這是由於js採起了雙精度存儲。小數在前端通常的解決方法是,先擴大倍數,相加後再除以倍數:函數

(0.1*10 + 0.2*10) / 10 == 0.3 
複製代碼

二、string(字符串類型)

字符串類型能夠是引號中的任意文本,可以使用單引號或雙引號。ui

var str = 'hello'
複製代碼

三、boolean(布爾類型)

布爾類型有兩種值 true或false,經常使用於判斷中。spa

四、null

null類型一般是一個變量或函數未聲明致使的,null類型也有一個bug是:指針

console.log(typeof null) //object
複製代碼

這也是js一直都存在的bug,注意就好。code

五、undefind

undefind一般是一個變量已經聲明,但並未賦值致使的。ip

var a ;
console.log(a)//undefined
複製代碼

六、symbol

symbol是ES6新增的,表示獨一無二的值,由Symbol()函數生成。字符串

console.log(Symbol('a') === Symbol('a'));//false
複製代碼

七、引用類型

引用類型跟前六種簡單數據類型相比,不一樣在於簡單數據類型存儲的直接是值,而引用類型存儲的是地址(指針)。因此就出現了下邊的問題。

var people = {
      name: '小明'
    }
var peoplea = people;
peoplea.name = '小白';
console.log(peoplea.name)//小白
console.log(people.name)//小白
複製代碼

咱們原本指望只改變peoplea的name,如今連people的name都改變了,這是複雜類型存儲的是指針致使的。能夠用深淺拷貝來解決。關於深淺拷貝的問題,我會專門再寫一篇文章去介紹。

相關文章
相關標籤/搜索