JavaScript中的数据类型以及判断数据类型的方法

数据类型概述

undefinedNullBooleanNumber StringfunctionObject(复杂数据类型)

javaScript 不支持任何创建自定义类型的机制,所有值都成为以上 6 中数据类型之一

undefined类型

Undefined 类型只有一个值,即特殊的 undefined

在使用 var 或者let声明变量,但没有对其初始化时,这个变量的值就是 undefined我们在定义变量的时候,尽可能的不要只声明,不赋值。

没有必要显式的给一个变量赋值为 undefined,因为没有赋值的变量会隐式的 (自动的)赋值为 undefined

ECMAScript 3 版之前并没有引入这个值,引入之后为了正式区分空对象与未经初始化的变量。

var s
alert(s) // undefined

未初始化的变量与根本不存在的变量(未声明的变量)也是不一样的。

扫描二维码关注公众号,回复: 5783610 查看本文章
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,三个等于号比较的是数据类型

 

 

猜你喜欢

转载自www.cnblogs.com/LO-ME/p/10657834.html
今日推荐