1.数据类型
1.基本数据(值)类型
String:字符串类型
Number:数字类型
boolean:布尔值类型 true/false
null:null
undefined:undefined
2.对象(引用)数据类型
Object:任意对象
Array:一种特别的对象(存储有顺序,数值下标)
Function:一种特别的对象(可以执行)
2.判断数据类型
- typeof:
可以判断:undefined/number /string /boolean/function - instanceof:判断对象的”具体“类型
- === / ==
可以判断:undefined/null
实例:
1.基本类型判断
首先需要明白typeof返回的是字符串表达,undefined不等于’undefined’
var a;
console.log(a) //undefined
console.log(typeof a) //"undefined"
console.log(undefined === 'undefined') //false
1.判断undefined
console.log(typeof a === 'undefined') //true
console.log(a === undefined) //true
2.判断数值
a = 4;
console.log(typeof a === 'number') //true
3.判断字符串
a = '我是字符串';
//注意字符串的类型是string不是String
console.log(typeof a === 'string') //true
console.log(typeof a === 'String') //false
4.判断布尔值
a = true
console.log(typeof a === 'boolean') //true
5.判断null
a = null
console.log(typeof a) //'object' 没法判断
console.log(a === null) //true 可以判断
2.对象
首先需要知道instanceof 是用来判断谁是谁的实例,也就是说A的隐式原型是否等于B的显示原型
var b1 = {
b2: [1, 'abc'],
b3: function () {
console.log('b3')
}
}
console.log(b1 instanceof Object) // true
console.log(b1 instanceof Array) // false
1.判断是否为数组
//数组是一个特殊的对象所以一下2种方式都为true
console.log(b1.b2 instanceof Object) //true
console.log(b1.b2 instanceof Array) //true
2.判断是否为函数
//函数是一个特殊的对象所以一下2种方式也为true
console.log(b1.b3 instanceof Object) //true
console.log(b1.b3 instanceof Function) //true
//也可以通过typeof方式判断函数对象的类型
console.log(typeof b1.b3 === 'function') //true
1.undefined 与null的区别?
undefined代表定义未赋值
null定义并赋值了,只是值为null
2.什么时候给变量赋值为null 呢?
初始赋值,表明将要赋值为对象
结束前,让对象成为垃圾对象(被垃圾回收器回收)
//初始赋值时
var a = null;//表明将要对a存储对象类型数据
//结束前
a = {
name: 'zhangsan'
}
a = null;//表示将该对象的引用消除
3.严格区别变量类型与数据类型?
数据的类型:基本类型和对象类型
变量类型:
(1)基本类型:保存的是基本数据类型的数据
(2)引用类型:保存的是地址的值