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

標(biāo)識符

標(biāo)識符就是變量、對象、屬性的名字。

標(biāo)識符規(guī)范
  • 第一個字符必須是字母、下劃線或美元符$
  • 其他字符可以是字母、數(shù)字、下劃線或美元符$
  • 不能把關(guān)鍵字、保留字、true、false、null、Infinity、NaN、Undefined用做標(biāo)識符

數(shù)據(jù)類型

  • 數(shù)字(Number):整數(shù)和小數(shù)
  • 字符串(String): 字符組成的文本
  • 布爾值(Boolean): true和false
  • undefined : 表示“未定義”或不存在,即由于目前沒有定義,所以此處暫時沒有任何值
  • null :表示無值,即此處的值就是“無”的狀態(tài)。
  • 對象(Object): 各種值的集合
  • Symbol :

通常,我們將數(shù)值、字符串、布爾值稱為原始類型(primitive type)的值,即它們是最基本的數(shù)據(jù)類型,不能再細(xì)分了。而將對象稱為合成類型(complex type)的值,因?yàn)橐粋€對象往往是多個原始類型的值的合成,可以看作是一個存放各種值的容器。至于undefined和null,一般將它們看成兩個特殊值。

對象分為:基本對象({})、數(shù)組、函數(shù)
JS對象可分為狹義對象({})、廣義對象(JS將一切都視為對象)

判斷類型

判斷到底是什么類型,有三種方法:

  • typeof運(yùn)算符
  • instanceof運(yùn)算符
  • Object.prototype.toString方法
1. typeof運(yùn)算符
  • 原始類型
    字符串、數(shù)字、布爾值分別返回string、number、boolean
    typeof 123; // number
    typeof '123'; // string
    typeof true; // boolean

  • 對象

    函數(shù)、基本對象、數(shù)組分別返回 function、object、object
    typeof function(){}; // function
    typeof {}; // object
    typeof []; // object

  • undefinded
    typeof undefined; // undefined
    可用于檢測一個未定義的變量而不報錯

    v
    // ReferenceError: v is not defined
    typeof v
    // "undefined"

    // 錯誤的寫法
    if (v) {
    // ...
    }
    // ReferenceError: v is not defined
    // 正確的寫法
    if (typeof v === "undefined") {
    // ...
    }

  • null
    typeof null; // object

  • window
    在瀏覽器環(huán)境下: typeof window; // object
    在其他環(huán)境下: typeof window; // undefined

2. instanceof 運(yùn)算符

后續(xù)待寫

3. Object.prototype.toString

后續(xù)待寫

undefined

undefined類型的值就一個:undefined。表示還未定義。

應(yīng)用場景

// 變量聲明了,但沒有賦值
var i;
i // undefined
// 調(diào)用函數(shù)時,應(yīng)該提供的參數(shù)沒有提供,該參數(shù)等于undefined
function f(x) {
return x;
}
f() // undefined
// 對象沒有賦值的屬性
var o = new Object();
o.p // undefined
// 函數(shù)沒有返回值時,默認(rèn)返回undefined
function f() {}
f() // undefined

轉(zhuǎn)化為數(shù)字類型

Number(undefined); // NaN

null

null類型的值也就一個:null。表示一個空對象指針,也代表一中“無”的狀態(tài),將來可能被賦予任何值。

應(yīng)用場景

//定義準(zhǔn)備保存對象的變量
var obj = null;
obj = [1];

轉(zhuǎn)化為數(shù)字類型

Number(null); // 0

null和undefined是否相等

null == undefined; // true
null === undefined; // false

boolean

boolean有兩種狀態(tài):真(true)、假(false)。嚴(yán)格區(qū)分大小寫。
如果JavaScript預(yù)期某個位置應(yīng)該是布爾值,會將該位置上現(xiàn)有的值自動轉(zhuǎn)為布爾值。轉(zhuǎn)換規(guī)則是除了下面六個值被轉(zhuǎn)為false,其他值都視為true。

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

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

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