1. 程式人生 > >JavaScript中的數據類型以及判斷數據類型的方法

JavaScript中的數據類型以及判斷數據類型的方法

相等 顯式 養成 報錯 span 變量賦值 特殊 隱式 派生

數據類型概述

undefinedNullBooleanNumber StringfunctionObject(復雜數據類型)

javaScript 不支持任何創建自定義類型的機制,所有值都成為以上 6 中數據類型之一

undefined類型

Undefined 類型只有一個值,即特殊的 undefined

在使用 var 或者let聲明變量,但沒有對其初始化時,這個變量的值就是 undefined我們在定義變量的時候,盡可能的不要只聲明,不賦值。

沒有必要顯式的給一個變量賦值為 undefined,因為沒有賦值的變量會隱式的 (自動的)賦值為 undefined

ECMAScript 3 版之前並沒有引入這個值,引入之後為了正式區分空對象與未經初始化的變量。

var s
alert(s) // undefined

未初始化的變量與根本不存在的變量(未聲明的變量)也是不一樣的。

var s
alert(s) // undefined
// alert(a) // 報錯:a is not defined

// 使用typeof 判斷一個未初始化的變量和未定義的變量返回都是undefined,從邏輯上思考,他們的值,一個是 undefined,一個報錯;他們的類型,卻都是 undefined
alert(typeof s)
alert(
typeof a)

Null類型

Null 類型是一個只有一個值的數據類型,即特殊的值 null

它表示一個空對象引用(指針),而 typeof 操作符檢測 null 會返回 object

var s = null
alert(typeof s) //object

如果定義的變量準備在將來用於保存對象,那麽最好將該變量初始化為 null。這樣,當檢查 null 值就知道是否已經變量是否已經分配了對象引用了。

var s = null
if (s !== null) {
   alert(‘對象存在‘)
}

註意:undefined 是派生自

null 的,因此 ECMA-262 規定對它們的相等性測試返回 true

由於 undefined null 兩個值的比較是相等的,所以,未初始化的變量和賦值為 null 的變量會相等。這時,可以采用 typeof 變量的類型進行比較。但建議還是養成編碼的規範,不要忘記初始化變量。

var s = null
var a
alert(a == s) // true
alert(a === s) // false
alert(typeof a === typeof s) // false
alert(undefined == null) // true
alert(undefined === null) //fasle,三個等於號比較的是數據類型

JavaScript中的數據類型以及判斷數據類型的方法