1野哭、JavaScript中 數(shù)據(jù)類型有以下七種:
-
number (數(shù)值)
整數(shù)和小數(shù)(比如1和3.14) -
string (字符串)
JS中字符串類型用于表示文本數(shù)據(jù),比如“Hello World” -
boolean (布爾值)
布爾表示邏輯的真?zhèn)味喜浚梢杂袃蓚€值:true
(對)和false
(錯)。 -
null (空值)
null 即此處的值為空 -
undefined (未定義)
一個沒有被賦值的變量會有個默認值undefined
-
symbol (在ECMAScript 第6版新定義)
每個從Symbol()返回的symbol值都是唯一的逛漫,唯一目的就是作為對象屬性的標識符 -
object (對象)
對象可以被看作是一組屬性的集合例诀,即一組“鍵值對”(key-value)的集合,是一種無序的復(fù)合數(shù)據(jù)集合
2梗脾、值有類型荸型,變量沒有類型
需要注意的是,在JavaScript中炸茧,值(即數(shù)據(jù))是有類型的瑞妇,但變量是沒有類型的。
var foo = "falali"; // `foo` 現(xiàn)在的值是一個字符串
foo = false; // `foo` 現(xiàn)在是一個boolean值
foo = 430;// `foo` 現(xiàn)在又變成了一個number
我們可以看到梭冠,變量foo
是沒有確切類型的辕狰,可以任意賦不同數(shù)據(jù)類型的值。變量可以包含任意值控漠,這些值具有類型蔓倍。
3、如何判斷一個值的數(shù)據(jù)類型盐捷?
為什么要判斷一個值的數(shù)據(jù)類型偶翅?
:滿足函數(shù)多態(tài)的需求。對一些不確定的值操作時碉渡,為了避免發(fā)生錯誤聚谁,在操作之前加一個數(shù)據(jù)類型判斷,再根據(jù)相應(yīng)類型來進行不同的操作滞诺。
typeof運算符
最常用的是 typeof
運算符形导,可以查詢給定值的數(shù)據(jù)類型
string, boolean, number,undefined
- typeof返回為相應(yīng)原始類型;
null
- object (歷史遺留問題);
object
- object;
function
- function (理論上來說function是object,typeof應(yīng)該返回object习霹,但返回的其實是function朵耕,以確保與ECMAScript 2015規(guī)范之前創(chuàng)建的ECMAScript代碼兼容。)
Tips:1淋叶、typeof的返回值是一個字符串阎曹,有時候在瀏覽器里會把引號省略掉
2、instanceof可以用來檢測引用數(shù)據(jù)類型,返回值是一個布爾值