一、數(shù)據(jù)類型:
JavaScript中有七種數(shù)據(jù)類型:
1.number (數(shù)值)
整數(shù)和小數(shù)(比如1和3.14)
2.string (字符串)
JS中字符串類型用于表示文本數(shù)據(jù)伊诵,比如“Hello World”
3.boolean (布爾值)
布爾表示邏輯的真?zhèn)蔚烟梗梢杂袃蓚€(gè)值:true (對(duì))和 false(錯(cuò))
4.null (空值)
null 即此處的值為空资厉,表示缺少的標(biāo)識(shí)窄刘,指示變量未指向任何對(duì)象翻伺。把 null 作為尚未創(chuàng)建的對(duì)象,也許更好理解。
5.undefined (未定義)
一個(gè)沒有被賦值的變量會(huì)有個(gè)默認(rèn)值undefined
6.symbol(在ECMAScript 第6版新定義)
每個(gè)從Symbol()返回的symbol值都是唯一的埋凯,唯一目的就是作為對(duì)象屬性的標(biāo)識(shí)符
7.object (對(duì)象)
對(duì)象可以被看作是一組屬性的集合,即一組“鍵值對(duì)”(key-value)的集合铸屉,是一種無序的復(fù)合數(shù)據(jù)集合
二钙蒙、值有類型扛施,變量沒有類型:
需要注意的是,在JavaScript中懦冰,值(即數(shù)據(jù))是有類型的内地,但變量是沒有類型的。我們可以看到,變量foo是沒有確切類型的涡贱,可以任意賦不同數(shù)據(jù)類型的值。變量可以包含任意值锋叨,這些值具有類型薄湿。
三豺瘤、如何判斷一個(gè)值的數(shù)據(jù)類型蚕泽?
為什么要判斷一個(gè)值的數(shù)據(jù)類型荒吏?
判斷值的數(shù)據(jù)類型是為了滿足函數(shù)多態(tài)的需求篓像。對(duì)一些不確定的值操作時(shí)摊崭,為了避免發(fā)生錯(cuò)誤,在操作之前加一個(gè)數(shù)據(jù)類型判斷含友,再根據(jù)相應(yīng)類型來進(jìn)行不同的操作替裆。
判斷數(shù)據(jù)類型最常用的是 typeof 運(yùn)算符
string, boolean, number,undefined
- typeof返回為相應(yīng)原始類型
null
- object (歷史遺留問題校辩,JS的bug)
object
- object
function
- function (理論上來說function是object,typeof應(yīng)該返回object辆童,但返回的其實(shí)是function召川,JS的bug)