JS基本数据类型
数据类型
变量可分为两种不同的数据类型:基本类型和引用类型
-
基本类型:
1)Number:值可以为任意数值
2)String:任意文本
3)Undefined:undefined
4)Null:null
5)Boolean:true/false -
引用数据类型:
1)Object:一般对象类型
2)Function:特殊对象类型(有方法,可执行)
3)Array:特殊对象类型(有下标/内部数据有序排列)
判断数据类型
typeof
使用typeof检测数据类型
总结:
typeof返回值为
1.“number” ————这个值是数值
2.“string”————这个值是字符串
3.“object”————这个值是null或对象
4.“undefined”————这个值未定义
5.“boolean”————这个值是布尔值
6.“function”————这个值是个函数
var age;
console.log(typeof age);//undefined
var car = null;
console.log(typeof car);//object
console.log(typeof 96);//number
console.log(typeof "hi");//string
console.log(typeof (2===3));//boolean
function test(){
}
console.log(typeof test);//function
Undefined类型
Undefined类型只有一个值undefined,在使用var声明变量并未对其初始化时,输出这个变量的值就是undefined,输出未定义的变量结果为报错。不过对未初始化和未定义的变量执行typeof,则都会返回undefined。所以该显式初始化变量,避免使用typeof后,难以区分该变量是未定义还是未初始化。
/* Undefined类型只有一个值:
undefined,
使用var声明变量并未对其初始化时,该变量的值为undefined */
var message;
console.log(message); //undefined
/* 输出已定义但未初始化的变量的值为undefined
输出未定义的变量会报错 */
var message;
console.log(message);//undefined
//console.log(test)//报错
//但他们的类型都是undefined
console.log(typeof message);//undefined
console.log(typeof test);//undefined
//做到显示初始化变量,当typeof返回值为"undefined"时则为未定义.
Null类型
Null类型同样只有一个值为null,null值表示一个空指针,所以用typeof检测null值会返回Object。
因此也会在如下两种情况下将变量赋值为null:
- 定义的变量将来准备存放对象
- 使用完后将变量指向的对象变为垃圾对象
null与undefined的区别
- undefined代表对象已定义但未赋值
- null代表变量的值为null
Boolean类型
Boolean类型有两个值:true和false
使用Boolean()可将任何一个类型的值转换为Boolean值
转换规则:
数据类型 | 转换为true | 转换为false |
---|---|---|
Boolean | true | fasle |
String | 任何非空字符串 | " "(空字符串) |
Number | 任何非0整数 | 0和NaN |
Object | 任何对象 | null |
Undefined | 不适用 | undefined |
理解转换规则以避免在流程控制(如if语句)中错误使用
var message = "你好";
if(message){
aleart("转换为Boolean类型后为true")
}
参考
《JavaScript高级程序设计》