数据类型
Javascript中的数据类型可以分为简单数据类型 和 复杂数据类型。
简单数据类型:undefined、null、boolean、number、string。
复杂数据类型:object 其中object 包括数组(Array)、函数(Function)。
判断数据类型方法
例: 先列举出数据类型
var a = [34,4,3,54],
b = 34,
c = 'adsfas',
d= "",
e = true,
f = null,
g = function(){console.log('我是函数')},
h;
- typeof
typeof 可以对 基本类型 进行准确判断(null除外,typeof null===“object”):
- string
- number
- boolean
- undefined
typeof 对 复杂类型 可返回以下两种类型:
- object typeof 把对象、数组或 null 返回 object。
- function typeof 运算符不会把函数返回 object。
// typeof 分不清 对象、数组、null
typeof:
var a = [34,4,3,54], //object
b = 34, //number
c = 'adsfas', //string
d= "", //string 值是 "",类型是 "string"
e = true, //boolean
f = null, //object
g = function(){console.log('我是函数')}, //function
h; //undefined
- instanceof
当我们需要知道某个对象的具体类型时,可以用运算符 instanceof,instanceof 是用来判断 A 是否为 B 的实例,表达式为:A instanceof B,如果 A 是 B 的实例,则返回 true,否则返回 false。 在这里需要特别注意的是:instanceof 检测的是原型
*注意:instanceof运算符只能用于对象,不适用原始类型的值。
instanceof 的使用限制很多,而且还不能很清晰方便的判断出一个实例是数组还是对象或方法。
'hello' instanceof String // false
null instanceof Object // false
undefined instanceof Object // false
字符串、null和undefined不是对象,所以返回false。
- Object.prototype.toString.call()
toString() 是 Object 的原型方法,调用该方法,默认返回当前对象的具体类型。这是一个内部属性,其格式为 [object Xxx] ,其中 Xxx 就是对象的类型,基本上所有对象的类型都可以通过这个方法获取到。
- undefined 和 null 的区别? 首先看一个判断题:null和undefined 是否相等
console.log(null==undefined) //true
console.log(null===undefined) //false
null: Null类型,代表“空值”,代表一个空对象指针,使用typeof运算得到 “object”,所以你可以认为它是一个特殊的对象值。
undefined: Undefined类型,当一个声明了一个变量未初始化时,得到的就是undefined。